如何将无符号整数格式化为8位十六进制数?

11

我想将一个无符号整数格式化成一个8位长的字符串,并在前面加上零。

这是我目前的代码:

  unsigned int number = 260291273;
  char output[9];
  sprintf(output, "%x", number);
  printf("%s\n", output); // or write it into a file with fputs

输出为"f83bac9",但我想要"0f83bac9"。如何格式化实现?


1
我没有点踩,但我可以想象它可能是因为这个问题可以通过查看手册页面简单回答。 - Jens Gustedt
2个回答

21

请使用"%08x"作为您的格式字符串。


6

您可以通过在格式类型和百分号之间指定0和所需的位数来使用零填充。

例如,对于至少具有8位数字的十六进制数字,您可以使用%08x

printf("%08x", number);

输出结果(如果number为500):

000001f4


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接