我编写了一个程序,用于将十六进制数字的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'。 谢谢你的帮助
答案 0 :(得分:0)
hToken2
检查一下。
答案 1 :(得分:0)
bitset<4>(bitmap[c]).to_string();
将为bitmap
数组
您可能需要以下内容:
for (int c = 0; bitmap[c] ; c++)
{
string temp;
char diff = 0 ;
if( bitmap[c] >= 'a' && bitmap[c] <= 'f' ) diff = -'a' + 10;
else if( bitmap[c] >= 'A' && bitmap[c] <= 'F' ) diff = -'A' + 10 ;
else if ( bitmap[c] >= '0' && bitmap[c] <= '9' ) diff = - '0' ;
else assert ( false );
temp = bitset<4>(bitmap[c] + diff ).to_string();
completeBitmap += temp ;
}