【发布时间】:2010-10-06 13:26:55
【问题描述】:
我想使用printf 以0x### 的形式显示十六进制数字,但如果数字为0,我想省略0x 部分。
【问题讨论】:
我想使用printf 以0x### 的形式显示十六进制数字,但如果数字为0,我想省略0x 部分。
【问题讨论】:
printf("%#x", number);
请注意,这正是您想要的。如果 number 的值为 0,则打印 0,否则以十六进制打印。示例:
int x = 0;
int y = 548548;
printf("%#x %#x\n", x, y);
结果:
0 0x85ec4
【讨论】:
printf ((x == 0) ? "%03x" : "0x%03x", x);
【讨论】:
难道您不能只使用 if 语句来检查数字是否为 0,然后确定您是否应该将其打印为 0x### 或仅打印 000(如果您正在寻找,则为 0)
【讨论】:
if (num == 0)
{
printf("0");
}
else
{
printf("%X", num);
}
【讨论】:
为什么要这么难?
如果数字 = 0 printf 没有格式化 别的 带格式的 printf【讨论】: