我想使用printf
以0x###
格式显示十六进制数字,但如果数字为0,我想省略0x
部分。
答案 0 :(得分:16)
printf("%#x", number);
请注意,这确实完全您想要的内容。如果number的值为0,则打印0,否则以十六进制打印。例如:
int x = 0;
int y = 548548;
printf("%#x %#x\n", x, y);
结果:
0 0x85ec4
答案 1 :(得分:4)
printf ((x == 0) ? "%03x" : "0x%03x", x);
答案 2 :(得分:2)
if (num == 0)
{
printf("0");
}
else
{
printf("%X", num);
}
答案 3 :(得分:1)
为什么要努力?
if number = 0 printf without formatting else printf with formatting
答案 4 :(得分:0)
难道你不能只使用if语句来检查数字是否为0然后弄清楚你是应该将它打印为0x ###还是仅为000(或者如果你正在寻找的那样是0)