node.js - Buffer 函数中的 BE 或 LE 是什么意思?

标签 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 代表什么?

Buffer 文档位于 here但我无法找到那些 here 的解释.

我还在 PHP 类中发现了一个常量,它表示 const DEFAULT_BYTE_ORDER = 'L';。这个 LreadUInt32LE 中的那个 L 一样吗?这一切都是关于字节顺序的吗?

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

如果我能得到更多关于二进制读取的引用资料,我将不胜感激!

最佳答案

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

关于node.js - Buffer 函数中的 BE 或 LE 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18805083/

相关文章:

javascript - 在 Node、Express With Multer 中上传之前验证图像宽度和高度

c - 在C中编辑或删除PDF标题信息

node.js - 如何在 EJS View 中使用 Node 模块(如 MomentJS)?

javascript - nock 不适用于请求(请求 promise )

javascript - 无法在 Node.js 中使用 aws-sdk 加载 PDF 文档

c - setvbuf() - buf 为 NULL 时的缓冲区大小

javascript - 如何在 Node.js 中追加到 Buffer

android - 捕获 Camera2 预览帧返回空缓冲区

c# - 如何使用 BinaryReader 并将数据正确输入文件?

c# - 从 C# 中的 BinaryReader 读取字符串不读取第一个字节