以十六进制奇怪的输出打印出一个值?

时间:2014-03-07 08:43:33

标签: c hex printf

int b = 0xf ^ 0xc;
printf("value is %04X", b);

输出是:

value is 0003

我知道11111100之间的xor操作的十进制值是3,尽管我希望整数b以十六进制打印出来。

3 个答案:

答案 0 :(得分:1)

0003是十六进制值;六位数的值介于0..F

之间

答案 1 :(得分:0)

不确定你的意思,十六进制数字是0-9和a-f。因此,小于(十进制)10的值将像十进制一样打印,因为数字符号是相同的。

答案 2 :(得分:0)

它已经是十六进制格式了。我想你想要0x0003

int b = 0xf ^ 0xc;
printf("value is 0x%04X",b);