Как отформатировать беззнаковое целое в шестнадцатеричное 8-значное число?

Я хочу отформатировать 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". Как мне добиться форматирования?

10
задан unwind 20 August 2010 в 14:49
поделиться

2 ответа

Используйте "%08x" в качестве строки формата.

14
ответ дан 3 December 2019 в 20:02
поделиться

Вы можете использовать заполнение нулями, указав 0 и желаемое количество цифр между % и типом формата.

Например, для шестнадцатеричных чисел с (минимум) 8 цифрами следует использовать % 08x :

printf("%08x", number);

Вывод (если число равно 500):

000001f4

5
ответ дан 3 December 2019 в 20:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: