节点:将缓冲区转换为十进制值

我有一个填充数据的缓冲区,并以<Buffer 52 49 …>开头

假设这个缓冲区被定义为buf,如果我运行buf.readInt16LE(0),返回如下内容:

18770

现在,hex值52和49的二进制表示是:

01010010 01001001

如果我要将前15位转换为十进制,则省略第16位来补码,我会得到以下结果:

21065

为什么我的结果没有给我18770的价值?

18770是“01001001 01010010”这是你的2个字节反转,这是readInt * LEfunction将要做的事情。

使用readInt16BE。