c – printf()格式化十六进制

这是一个好奇的查询比一个重要的问题,但为什么当打印十六进制作为一个8位数字与前导零,这%#08X不显示相同的结果为0x?

当我尝试使用前者,08格式化标志被删除,它不工作只有8。

再次,我只是好奇。

#部分在输出字符串中给出一个0x。 0和x计数对应于08部分列出的“8”字符。如果你想要它是相同的,你需要要求10个字符。

int i = 7;

printf("%#010x\n", i);  // gives 0x00000007
printf("0x%08x\n", i);  // gives 0x00000007
printf("%#08x\n", i);   // gives 0x000007

也改变x的情况,影响输出字符的外壳。

printf("%04x", 4779); // gives 12ab
printf("%04X", 4779); // gives 12AB
http://stackoverflow.com/questions/14733761/printf-formatting-for-hex

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:c – printf()格式化十六进制