Я создал функцию, которая превращает unsigned char в массив unsigned char размером 8 (где каждый индекс содержит 0 или 1, составляя 8 бит данного символа). Вот 100% рабочая версия:unsigned char array из 8 бит в unsigned char
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 ;
}
Мне нужно создать функцию, которая прямо противоположна этому. Смысл, он примет и массив unsigned char размером 8 и превратит его в обычный одиночный символ без знака. Каков эффективный способ сделать это?
Спасибо за помощь!
Обратные операции. по существу 'c << = 1; c | = b [i ++] - '0'' – AShelly
Где вы застряли? – mafso
'sizeof (char)' всегда 1, вам нужно 'i = CHAR_BIT' –