代码之家  ›  专栏  ›  技术社区  ›  citronas

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

  •  9
  • citronas  · 技术社区  · 14 年前

    我想将一个无符号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 回复  |  直到 10 年前
        1
  •  13
  •   pauljwilliams    14 年前

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

        2
  •  5
  •   Frxstrem    14 年前

    可以通过指定 0 以及您想要的位数,介于 % 以及格式类型。

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

    printf("%08x", number);
    

    输出(IF) number 500):

    00000 1F4