如何在C中显示hex数字?

我有一个数字列表如下:

0,16,32,48 …

我需要以hex输出这些数字:

0000,0010,0020,0030,0040 …

我曾尝试过的解决scheme如:

printf("%.4x",a); // where a is an integer 

但是我得到的结果是:

0000,0001,0002,0003,0004 …

我想我就在那里。 任何人都可以帮忙,因为我不擅长printf中的printf

谢谢。

尝试:

 printf("%04x",a); 
  • 0 – 填充零(0)而不是填充空格的数字。
  • 4 (宽度) – 要打印的最less字符数。 如果要打印的值小于此数字,则在此宽度内的结果右alignment,在填充字符的左侧填充。 默认情况下,这是一个空格,但是我们使用的前导零指定了一个零作为pad字符。 即使结果较大,值也不会被截断。
  • x – hex整数的指定符。

更多在这里

我这样使用它:

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

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

你的代码没有问题。 它确实打印你想要的方式。 或者,你可以这样做:

 printf("%04x",a); 

您可以使用以下代码段代码:

 #include<stdio.h> int main(int argc, char *argv[]){ unsigned int i; printf("decimal hexadecimal\n"); for (i = 0; i <= 256; i+=16) printf("%04d 0x%04X\n", i, i); return 0; } 

它使用零填充在4个位置打印十进制和hex数字。