C 打印精度

C 打印精度,c,formatting,printf,C,Formatting,Printf,我正在用C编写一个程序,我有几个用于调试的printf语句。有没有办法改变printf上十六进制输出的精度?例子。我有0xFFF,但我希望它打印出0x0FFF。说printf(“%04X”,x) 0表示“用零填充”,4表示“至少四个字符宽” 对于整数,不使用术语“精度”(因为整数是精确的),而是使用“字段宽度”之类的术语。精度是打印浮动时科学记数法中的位数。以十六进制打印时,可以使用printf的精度字段 例如: int i = 0xff; printf ("i is 0x%.4X\n", i)

我正在用C编写一个程序,我有几个用于调试的printf语句。有没有办法改变printf上十六进制输出的精度?例子。我有0xFFF,但我希望它打印出0x0FFF。

printf(“%04X”,x)

0
表示“用零填充”,
4
表示“至少四个字符宽”


对于整数,不使用术语“精度”(因为整数是精确的),而是使用“字段宽度”之类的术语。精度是打印浮动时科学记数法中的位数。

以十六进制打印时,可以使用printf的精度字段

例如:

int i = 0xff;
printf ("i is 0x%.4X\n", i);
printf ("i is  %#.4X\n", i);
将同时打印:
0x00FF

这种方法的结果与Kerrek完全相同,尽管使用的printf标志与常用的%04x稍有不同(50%),但实际上,您可以为整数转换说明符指定精度:
printf(“%.4X”,x”);
这样做,并按预期工作(对于
d
i
o
u
x
x
转换,精度指定要显示的最小位数)。是的,但“精度”一词并不真正适用——您总是可以看到精确的整数。“精度”一词实际上,C中使用的是,即使对于整数,
%.4X
.4
部分称为精度。最好使用
%.4X
,即使用精度而不是宽度。宽度包括符号的其他内容,如空格、
0x
(如果使用了
标志)@PSkocik:我想给你一个+1,但那是不可能的。你的评论很有启发性!