Printf和十六进制值

时间:2009-11-20 18:44:34

标签: c++ c string printf formatting

所以,我的类型为__be16(2个字节)。在十六进制中,该值表示为十进制的0x0800或2048。 (16 ^ 2 * 8)

所以,当我打印这个;我这样做:

printf("%04X", value); //__be16 value;
                      //Print a hex value of at least 4 characters, no padding.

输出: 0008

printf("%i", value); //Print an integer.

输出: 8

我应该得到 分别是0800和2048,我做错了什么?

1 个答案:

答案 0 :(得分:8)

我的猜测是value是8: - )

你是在小端机器上,比如x86吗?我要猜测,be16你的意思是该值是大端,你需要交换字节。