好吧,这是我的问题。我从一个文件中读取了两个字节。
假设这些字节是“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
有任何想法吗?