我有一个填充数据的缓冲区,以<缓冲区52 49 ...>
假设此缓冲区定义为buf,如果我运行buf.readInt16LE(0),则返回以下内容:
18770
现在,十六进制值52和49的二进制表示为:
01010010 01001001
如果我将前15位转换为十进制,省略第二位的二进制补码,我会得到以下结果:
21065
为什么我的结果没有给我18770的值?
答案 0 :(得分:6)
18770是“01001001 01010010”,这是你的2字节反转,这是readInt * LE功能将要做的事情。
使用readInt16BE。