2011-01-28 70 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; 

然后你可以将其打印到控制台或其他任何你想