2011-01-28 34 views
0

擴大我other question ..打印位表示的unsigned char * single_char;

unsigned char* s_char = data + offset; 
(*s_char) = size_t(((*s_char) & 0xf0)) | new_doff; 

如何打印s_char的位表示?

+1

的可能的複製[有一個printf轉換爲二進制格式打印嗎?](http://stackoverflow.com/questions/111928/is-there-a-printf-converter-to-print-in-二進制格式) – peoro 2011-01-28 19:57:47

+0

證實。不幸的是,這個問題沒有出現在搜索中。 – 2011-01-28 20:02:13

回答

1

你需要使用類似的辦法來手動打印:

 
    printf("%d%d%d%d%d%d%d%d", *s_char & 0x80, *s_char & 0x40, ..., *s_char & 0x01); 
1

我會用一個類型轉換爲int喜歡

unsigned char* s_char = data + offset; 
(*s_char) = size_t(((*s_char) & 0xf0)) | new_doff; 
int s_char_int; 
s_char_int = (int)s_char; 

然後你可以將其打印到控制檯或其他任何你想