打印一個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的每一位大小了

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