Programming/C/C++

1byte unsigned char 를 4비트 단위로 쪼개서 사용하기

acidpop 2015. 5. 22. 10:30
반응형

#define MAKEBYTE(hi, lo)   ((unsigned char)0xF0 & (hi << 4)) | ((unsigned char)0x0F & (lo))
#define HIBYTE(w)    ((unsigned char)0xF0 & w) >> 4
#define LOBYTE(w)    ((unsigned char)0x0F & w);

 

 

unsigned char cSum = 0;

 //cSum = sTemp[0] | sTemp[1] << 4;
 cSum = MAKEBYTE(sTemp[0], sTemp[1]);

 sTemp[2] = HIBYTE(cSum);
 sTemp[3] = LOBYTE(cSum);

 

 

4비트 단위로 쪼개면 각각 0~15 값(2의 4승) 까지만 사용 가능