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

如何在C中显示十六进制数?,c,format,integer,printf,hex,C,Format,Integer,Printf,Hex,我有一个数字列表如下: 0,16,32,48 我需要以十六进制输出这些数字,如下所示: 00000010002000300040 我尝试过以下解决方案: printf("%.4x",a); // where a is an integer 但我得到的结果是: 0000,0001,0002,0003,0004 我想我就快到了。我不在,有人能帮忙吗 非常擅长C语言中的printf 谢谢。试试: printf("%04x",a); 0-左侧用 零(0)而不是空格,其中 指定了填充 4(宽度)-最

我有一个数字列表如下:

0,16,32,48

我需要以十六进制输出这些数字,如下所示:

00000010002000300040

我尝试过以下解决方案:

printf("%.4x",a); // where a is an integer
但我得到的结果是:

0000,0001,0002,0003,0004

我想我就快到了。我不在,有人能帮忙吗 非常擅长C语言中的
printf

谢谢。

试试:

printf("%04x",a);
  • 0
    -左侧用 零(0)而不是空格,其中 指定了填充
  • 4
    (宽度)-最小数量的 要打印的字符。如果 要打印的值小于 这个数字,结果是正确的 在该宽度范围内,通过在左侧填充 使用pad字符。默认情况下,这是 一个空格,但我们使用的前导零 将零指定为pad字符。 即使结果为空,也不会截断该值 更大的
  • x
    -十六进制的说明符 整数

更多

您的代码没有问题。它可以按你想要的方式打印。或者,您可以执行以下操作:

printf("%04x",a);
我是这样使用它的:

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

只需将数字“2”更改为要打印的任何字符数;)

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

#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;
}
#包括
int main(int argc,char*argv[]){
无符号整数i;
printf(“十进制十六进制”);

对于(i=0;i它的结果是:0000,0001,0002,0003,0004…我需要的是:000000,10002000300040…嗯,真奇怪…我试过了,但总是显示为0000,0001,0002,0003,0004(我在Ubuntu中使用Eclipse,gcc…)@tsubasa-同时将它们作为十进制整数打印出来,只是为了检查代码的其余部分是否符合您的想法。原始的
%.4x
格式表示法很好,可以获得与
%04x
相同的结果。问题主要是提供给
printf()
的数据。请尝试
printf(%d:%.4x\n”,a,a)
,我认为你的
a
没有你认为的价值。是的,你是对的。我当时心不在焉。很抱歉这个愚蠢的问题。。。