打印一个char字符的八位

socket通信服务器需要给待发送的数据加个头,这样客户端只有确认了头才能开始解析包,项目中出了问题,就是加了一个char作为头,但是发送与接收这个char内容不符,想办法数据这个八位的char,看看是哪里出了问题

unsigned char a;
int r[8];

r[0] = a & 0x01; // 最低道位专属
r[1] = ( a & 0x02) >> 1;
r[2] = ( a & 0x04) >> 2;
r[3] = ( a & 0x08) >> 3;
r[4] = ( a & 0x10) >> 4;
r[5] = ( a & 0x20) >> 5;
r[6] = ( a & 0x40) >> 6;
r[7] = ( a & 0x80) >> 7; // 最高位

for(int i = 0; i < 8; ++i){
    printf(" %d:",r[i]);
}

这样就可以输出这个char的每一位大小了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章