如何将unsigned int格式化为8位十六进制数?

时间:2010-08-20 14:45:47

标签: c formatting printf

我想将unsigned int格式化为带有前导零的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”。如何实现格式化?

2 个答案:

答案 0 :(得分:13)

使用“%08x”作为格式字符串。

答案 1 :(得分:5)

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

例如,对于(至少)8位数的十六进制数字,您将使用%08x

printf("%08x", number);

输出(如果number为500):

  

000001F4