我正试图从为C#编写的文档中重写NodeJS中的协议。
我正在从索引文件中读取内容,这是有关缓冲区布局的说明。
据我所读,DWORD
只是一个32位无符号整数。但是,每当我用indexFileBuffer.readUInt32BE(offset)
读取长度字节时,我得到的长度都比预期的长得多。
显然,readUInt32BE()
不等于dword
,或者dword
必须根据某些标准进行不同的处理。
任何对如何正确计算该值的见识将不胜感激。
答案 0 :(得分:1)
从缓冲区获取DWORD(无符号32位整数)的正确函数是:
buf.readUInt32BE(offset)
或
buf.readUInt32LE(offset)
您确实需要知道数据是小字节序还是大字节序,才能选择两者中的正确选项。
如果您正在使用它而没有获得期望的价值,那么必须做以下三件事之一:
仅供参考,Intel使用小字节序字节排序,ARM使用大字节序。有关“局限性” here的更多信息。