如何在C中显示十六进制数?
我有一个数字列表如下: 0,16,32,48 我需要以十六进制输出这些数字,如下所示: 00000010002000300040 我尝试过以下解决方案:如何在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(宽度)-最
printf("%.4x",a); // where a is an integer
但我得到的结果是:
0000,0001,0002,0003,0004
我想我就快到了。我不在,有人能帮忙吗
非常擅长C语言中的printf
谢谢。试试:
printf("%04x",a);
-左侧用 零(0)而不是空格,其中 指定了填充0
(宽度)-最小数量的 要打印的字符。如果 要打印的值小于 这个数字,结果是正确的 在该宽度范围内,通过在左侧填充 使用pad字符。默认情况下,这是 一个空格,但我们使用的前导零 将零指定为pad字符。 即使结果为空,也不会截断该值 更大的4
-十六进制的说明符 整数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
没有你认为的价值。是的,你是对的。我当时心不在焉。很抱歉这个愚蠢的问题。。。