0

我想用printf表格来显示十六进制数字0x###,但如果数字为0,我想省略0x部分。

4

5 回答 5

16
printf("%#x", number);

请注意,这正是您想要的。如果 number 的值为 0,则打印 0,否则以十六进制打印。例子:

int x = 0;
int y = 548548;

printf("%#x %#x\n", x, y);

结果是:

0 0x85ec4
于 2009-02-10T02:03:49.660 回答
4
 printf ((x == 0) ? "%03x" : "0x%03x", x);
于 2009-02-10T02:07:33.630 回答
2
if (num == 0)
{
     printf("0");
}
else
{
     printf("%X", num);
}
于 2009-02-10T02:02:59.287 回答
1

为什么要难?

如果数字 = 0
  printf 没有格式化
别的
  带格式的 printf
于 2009-02-10T02:01:23.347 回答
0

难道您不能只使用 if 语句来检查数字是否为 0,然后确定是否应该将其打印为 0x### 或仅打印 000 (如果您正在寻找,则为 0)

于 2009-02-10T02:03:56.757 回答