在NodeJS中,DWORD等于什么?

时间:2019-10-20 22:09:58

标签: node.js buffer dword

我正试图从为C#编写的文档中重写NodeJS中的协议。

我正在从索引文件中读取内容,这是有关缓冲区布局的说明。

enter image description here enter image description here

据我所读,DWORD只是一个32位无符号整数。但是,每当我用indexFileBuffer.readUInt32BE(offset)读取长度字节时,我得到的长度都比预期的长得多。

显然,readUInt32BE()不等于dword,或者dword必须根据某些标准进行不同的处理。

任何对如何正确计算该值的见识将不胜感激。

1 个答案:

答案 0 :(得分:1)

从缓冲区获取DWORD(无符号32位整数)的正确函数是:

buf.readUInt32BE(offset)

buf.readUInt32LE(offset)

您确实需要知道数据是小字节序还是大字节序,才能选择两者中的正确选项。


如果您正在使用它而没有获得期望的价值,那么必须做以下三件事之一:

  1. 您期望存储在缓冲区中的数据不存在
  2. 您没有使用正确的“字节序”版本
  3. 您在读取缓冲区中的偏移量不正确

仅供参考,Intel使用小字节序字节排序,ARM使用大字节序。有关“局限性” here的更多信息。