为什么将十六进制数字打印为带前导零的 8 位数字时,%#08X
不显示与 0x%08X 相同的结果
?
当我尝试使用前者时,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
关于c - printf() 格式化为十六进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14733761/