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

问题描述 投票:0回答:4

我有一个号码列表如下:

0、16、32、48...

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

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

我尝试过以下解决方案:

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

但是我得到的结果是:

0000、0001、0002、0003、0004...

我想我已经很接近了。我该如何解决它?

我不太擅长 C 语言中的

printf

c format integer printf hex
4个回答
137
投票

尝试:

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

更多这里


9
投票

我这样使用它:

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

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


2
投票

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

printf("%04x",a);

1
投票

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

#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 个位置打印十进制和十六进制数字,并用零填充。

© www.soinside.com 2019 - 2024. All rights reserved.