缓冲区函数中BE或LE的含义是什么?

时间:2013-09-14 18:32:49

标签: node.js buffer binaryreader

我有一个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代表什么?

缓冲区文档位于here,但我无法找到here的解释。

此外,我在PHP类中找到了const DEFAULT_BYTE_ORDER = 'L';的常量。这个LL中的readUInt32LE相同吗?是关于Byte Orders的全部内容吗?

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

如果我可以获得更多关于二进制阅读的参考资料,那将非常感激!

1 个答案:

答案 0 :(得分:4)

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