通过在 c++ 中使用文件流,我已将二进制文件中的字符串读入缓冲区(4 个字节)。我知道缓冲区包含“ 89abcdef
”。缓冲区是这样的:
buffer[0] = 89
buffer[1] = ab
buffer[2] = cd
buffer[3] = ef
现在,我想将这些数字恢复为一个十六进制数字0x89abcdef
。然而,这并不像我想象的那么简单。我尝试了以下代码:
int num = 0;
num |= buffer[0];
num <<= 24;
cout << num << endl;
此时,num
显示为
ea000000
当我对缓冲区的第二个元素尝试相同的算法时:
num = 0;
num |= buffer[1];
num <<= 16;
cout << num << endl;
输出:
ffcd0000
ff
前面的对cd
我来说将它们全部加在一起非常不方便(我打算让它看起来像00cd0000
,然后将它添加到第一个num
)。
谁能帮我恢复十六进制数0x89abcdef
?谢谢。