Используя потоковую передачу файлов в 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
, и добавить в первый номер
).
Может ли кто-нибудь помочь мне восстановить шестнадцатеричный номер 0x89abcdef
? Спасибо.