【发布时间】:2014-10-02 06:54:58
【问题描述】:
我有一个介于 0 到 63 之间的数字,所以最多 6 位。
然后我必须用十六进制表示这个数字。
如何强制我的号码以 8 位重新表示,这样如果我有:
int x = 60;
cout << std::hex << x;
它打印0x3C?
【问题讨论】:
-
我不明白你的问题,但如果你想要的是“显示0x3c”,那么
std::cout << std::showbase << std::hex << x;呢? -
如果你想“强制表示为 8 位”,那么使用
std::unint8_t而不是int。 -
"hex" 符号几乎假设您有一个 8 位字节。二进制“00000000”到“11111111”显示在x'00'到x'FF'范围内。
-
60总是用 8 位表示(高两位为 0)。
-
@PeterSchneider:文字的类型为
int,这意味着它至少有10位设置为零,如果不是26位。char(60)将有至少 8位, 但一般CHAR_BITS.
标签: c++ byte bit type-conversion hex