-3
我已经创建了一个函数,将一个无符号字符转换为大小为8的无符号字符数组(其中每个索引包含0或1,组成给定字符的8位)。这里是100%的工作版本:8位无符号字符数组到无符号字符
unsigned char * ucharToBitArray(unsigned char c)
{
unsigned char * bits = malloc(8);
int i;
for(i=sizeof(unsigned char)*8; i; c>>=1)
bits[--i] = '0'+(c&1);
return bits ;
}
我需要创建一个完全相反的函数。意思是说,它会取大小为8的unsigned char数组,并将它变成一个常规的单个无符号字符。什么是这样做的有效方式?
感谢您的帮助!
扭转操作。本质上'c << = 1; c | = b [i ++] - '0'' – AShelly 2014-12-02 04:11:45
你从哪里被卡住了? – mafso 2014-12-02 06:46:52
'sizeof(char)'总是1,你需要'i = CHAR_BIT' – 2014-12-02 07:23:50