C ++でファイルストリーミングを使用することにより、バイナリファイルの文字列をバッファ(4バイト)に読み込みました。バッファに「」が含まれていることを知っています89abcdef
。バッファは次のようになります。
buffer[0] = 89
buffer[1] = ab
buffer[2] = cd
buffer[3] = ef
ここで、これらの数値を1つの16進数に復元したいと思います0x89abcdef
。しかし、これは思ったほど簡単ではありません。次のコードを試しました。
int num = 0;
num |= buffer[0];
num <<= 24;
cout << num << endl;
この時点で、次のnum
ように表示されます
ea000000
バッファの2番目の要素に対して同じアルゴリズムを試したとき:
num = 0;
num |= buffer[1];
num <<= 16;
cout << num << endl;
出力:
ffcd0000
のff
前は、cd
それらをすべて一緒に追加するのは非常に不便です(私はそれをのように見せて00cd0000
、最初のものに追加することを計画していましたnum
)。
誰かが16進数を回復するのを手伝ってもらえ0x89abcdef
ますか?ありがとう。