-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