【发布时间】:2022-01-05 11:18:24
【问题描述】:
我有一个无符号的 16 位数字,我需要像这样以十六进制打印到终端:
0x0FFE
但是使用printf("0x%X\n", number"); 我明白了:
0xFFE
有没有办法在 C 或 C++ 上完全打印十六进制数字?
【问题讨论】:
-
“我有 16 位数字”是什么类型的?如果是某个signed类型,那么
"0x%04X\n", number是不够的。
我有一个无符号的 16 位数字,我需要像这样以十六进制打印到终端:
0x0FFE
但是使用printf("0x%X\n", number"); 我明白了:
0xFFE
有没有办法在 C 或 C++ 上完全打印十六进制数字?
【问题讨论】:
"0x%04X\n", number是不够的。
默认情况下,不打印前导零。要打印至少 4 个带前导零的字符,请使用 0 标志和 4 的字段宽度。
printf("0x%04X\n", number);
【讨论】: