我正在用C语言编写程序,为了调试,我使用了几个printf语句。是否有一种方法可以在printf中改变HEX输出的精度?例如,我有0xFFF,但我想将其打印为0x0FFF。
我正在用C语言编写程序,为了调试,我使用了几个printf语句。是否有一种方法可以在printf中改变HEX输出的精度?例如,我有0xFFF,但我想将其打印为0x0FFF。
使用 printf("%04X", x);
。
0
表示“用零填充”,4
表示“至少四个字符宽度”。
对于整数,不使用术语“精度”(因为整数是精确的),而是“字段宽度”或类似的术语。精度是在打印浮点数时科学计数法中的数字位数。
int i = 0xff;
printf ("i is 0x%.4X\n", i);
printf ("i is %#.4X\n", i);
将会同时打印出: 0x00FF
printf("%.4X", x");
可以这样做,并且按预期工作(对于d
、i
、o
、u
、x
和X
转换,精度指定要显示的最小数字位数)。 - caf%.4X
中的.4
部分被称为精度。 - caf%.4x
,即使用精度而不是宽度。宽度包括其他内容,如符号的空间,0x
(如果使用了#
标志)等。 - R.. GitHub STOP HELPING ICE%#04x
格式化0x618
会得到0x618
(而不是0x0618
),但使用%#0.4x
格式化则会得到0x0618
。手册页面上说:“如果给出数值转换(d、i、o、u、x和X)的精度,则忽略0标志。” - U. Windl