【发布时间】:2015-10-30 10:14:11
【问题描述】:
我编写了一个程序,用于将 16 字符的十六进制数转换为 64 位二进制数。 64 = 16 十六进制 + 4 位二进制。
string completeBitmap;
char bitmap[16];
for (int c = 0; c < sizeof(bitmap); c++)
{
string temp;
temp = bitset<4>(bitmap[c]).to_string();
completeBitmap += temp;
}
但当我阅读 'a'、'b、'c'、'd'、'e' 和 'f' 时,它们无法正确转换。 例如,'f' 应该是 '1111',但结果是 '0110'。 感谢您的帮助
【问题讨论】:
-
字符
'f'恰好有一个 ASCII 码0x66。0110 == 0x6- 该 ASCII 码的最低有效四位。文档的哪一部分向您建议bitset<4>('f')会产生1111的位集?