如何在C中显示十六进制数?

45 c format printf hex integer

我有一个数字列表如下:

0,16,32,48 ......

我需要以十六进制输出这些数字:

0000,0010,0020,0030,0040 ...

我尝试过如下解决方案:

printf("%.4x",a); // where a is an integer
Run Code Online (Sandbox Code Playgroud)

但我得到的结果是:

0000,0001 0002,0003,0004 ...

我想我就在附近.任何人都可以帮忙,因为我printf在C中不太擅长.

谢谢.

cod*_*ict 109

尝试:

printf("%04x",a);
Run Code Online (Sandbox Code Playgroud)
  • 0 - 左边用零填充数字(0)而不是空格,其中指定了填充.
  • 4(宽度) - 要打印的最小字符数.如果要打印的值小于此数字,则结果在此宽度内右对齐,方法是在左侧用填充字符填充.默认情况下,这是一个空格,但我们使用的前导零指定零作为填充字符.即使结果较大,也不会截断该值.
  • x - 十六进制整数的说明符.

更多这里

  • 原始的“%.4x”格式表示法很好,并且达到了与“%04x”相同的结果。问题主要是提供给“printf()”的数据。 (2认同)

zei*_*lja 6

我这样使用它:

printf("my number is 0x%02X\n",number);
// output: my number is 0x4A
Run Code Online (Sandbox Code Playgroud)

只需将数字"2"更改为任意数量的字符您想要打印;)