3

我有一个 PHP 类,用于读取要转换为 NodeJS 的二进制数据,或者在 NodeJS 中找到等效的几个函数。我对这个 BinaryReader 类感兴趣的函数是ReadULongReadUShort。我相信这些意味着读取无符号长整数(4 字节)和无符号短整数(2 字节)。当我试图在 NodeJS 中找到这些的等价物时,我对在这些之间使用哪个函数感到困惑:

buf.readUInt16LE(offset, [noAssert])
buf.readUInt16BE(offset, [noAssert])

buf.readUInt32LE(offset, [noAssert])
buf.readUInt32BE(offset, [noAssert])

在这种情况下会LEBE代表什么?

缓冲区文档位于此处,但我无法在此处找到解释。

我还在 PHP 类上找到了一个常量,上面写着const DEFAULT_BYTE_ORDER = 'L';. 这和里面的L一样吗?这就是字节顺序的全部内容吗?LreadUInt32LE

到目前为止,我已经阅读了这些文章:

如果我能获得更多关于二进制阅读的参考资料,我将不胜感激!

4

1 回答 1

7

BE 和 LE 分别代表大端和小端。在big endian 中,最高有效字节存储在最小地址中,而在little endian 中,最低有效字节存储在最小地址中。话虽如此,endian 确实表示字节顺序。您可以在文档中的一个示例中看到该模式:

var buf = new Buffer(2);

buf[0] = 0x3;
buf[1] = 0x4;

buf.readUInt16BE(0);
buf.readUInt16LE(0);

// 0x0304
// 0x0403
于 2013-09-14T18:38:15.253 回答