以十六进制显示带有前导零的int数

时间:2015-04-03 15:43:32

标签: c hex printf

我使用ABCD

读取了fscanf(file_input, "%X", &data);这样的整数数据

这里没有问题,如果我的号码恰好有4组!= 0

例如,如果阅读0002只显示2,或00AB,则会显示AB

我用printf("%X", data);

显示它

即使它们是零,是否还有4个组可以打印?

我尝试了printf("%4X", &data);,但它将我的结果移动了4个空格。

你能帮我吗?

2 个答案:

答案 0 :(得分:2)

在4组中显示起始零,因为我猜您需要。 使用此:

printf("%04x",data);

答案 1 :(得分:2)

printf()和朋友中,%X等字段说明符可以采用 width 参数。对于字段宽度为4,这将是

printf("%4X", data);

并在左侧填充空格。如果你想在右边填充它,那就是

printf("%-4X", data);

用零填充,就像这样做

printf("%04X", data);