さて、ここに私の問題があります。ファイルから 2 バイトを読み取りました。
それらのバイトが「FD 37」であるとしましょう-それは次のようになります:64823
私はビッグエンディアンで読んでいるので、リトルエンディアンを反転させてからビット移動を試みました。手に入らないので助かります。どんな助けでも大歓迎です。
(はい、ゲットーアレイの逆であることは知っています..)
static void Reverse(BYTE* &buffer, long length)
{
BYTE *obuff = new BYTE[length];
for(int i=0; i<length; i++)
obuff[length-i-1] = buffer[i];
obuff[length] = '\0';
buffer = obuff;
}
typedef signed short int Int16;
Int16 ReadInt16()
{
Int16 val;
BYTE* bytes = new BYTE[2];
Read(bytes, 0, 2); //just stores 2 bytes into bytes and advances buffer 2 positions.
Array::Reverse(bytes,2);
val = bytes[0] | (bytes[1] << 8);
return val;
}
その方法を使用した私の結果は-753です
何か案は?