BE或LE在缓冲区function中意味着什么?
我有一个PHP类,用于读取我转换为NodeJS的二进制数据,或者在NodeJS中查找相当于一些function的二进制数据。 我对这个BinaryReader类感兴趣的函数是ReadULong
和ReadUShort
。 我相信这些意味着读取无符号长整型(4字节)和无符号短整型(2字节)。 正如我试图在NodeJS中find这些等价物,我很困惑在这些之间使用哪个函数:
buf.readUInt16LE(offset, [noAssert]) buf.readUInt16BE(offset, [noAssert]) buf.readUInt32LE(offset, [noAssert]) buf.readUInt32BE(offset, [noAssert])
LE
或BE
在这种情况下代表什么?
缓冲区文档位于这里,但我无法find这里的解释。
另外我在PHP类上find一个常量,它表示const DEFAULT_BYTE_ORDER = 'L';
。 这和L
在readUInt32LE
吗? 这是关于Byte Orders的全部内容吗?
到目前为止,我读过这些文章:
- 好的来源在cplusplus.com查找variablestypes。
- PHP逐字教程和二进制math
- 如何读取二进制文件逐字节在Node.js问题在stackoverflow
如果我可以给更多的参考阅读二进制阅读,将不胜感激!
BE和LE代表大端和小端。 在大端中,最重要的字节存储在最小的地址中,而在小端中,最小的字节存储在最小的地址中。 也就是说,endian确实表示字节顺序。 您可以在文档中的一个示例中看到该模式:
var buf = new Buffer(2); buf[0] = 0x3; buf[1] = 0x4; buf.readUInt16BE(0); buf.readUInt16LE(0); // 0x0304 // 0x0403