c - unsigned char array of 8 bits to unsigned char -
i've created function turns unsigned char unsigned char array of size 8 (where each index contains either 0 or 1, making 8 bits of given char). here 100% working version:
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 ; }   i need create function exact opposite of now. meaning, take , unsigned char array of size 8, , turn regular single unsigned char. effective way of doing so?
thanks help!
the function needlessly complex , obscure. suggest replacing this:
void uchartobitarray(char bits[8], uint8_t c) {    for(uint8_t i=0; i<8; i++)    {      if(c & (1<<i))      {        bits[7-i] = '1';      }      else      {        bits[7-i] = '0';      }    } }   now convert back, go other way around. check bits[i] , set c |= (1<<i) if found '1'.
Comments
Post a Comment