如何在node.js中测试字节序

Gab*_*mas 6 endianness node.js

当你读取一大块字节并且需要将它们转换为数字时,node.js具有buffer.readInt32BE()和的函数buffer.readInt32LE().

如果我只知道文件的前4个字节是整数,如果我不知道系统的字节顺序,我应该使用什么函数?大端还是小端?

做一个快速的谷歌搜索(stackoverflow),在C中我们可以测试字节序:

if ( htonl(47) == 47 ) {
  // Big endian
} else {
  // Little endian.
}
Run Code Online (Sandbox Code Playgroud)

我们如何在node.js中测试endianness以正确使用readInt32BE和readInt32Le?

zam*_*uts 7

os.endianness()返回CPU的字节顺序.可能的值为"BE"或"LE".

它被添加到Node.js v0.10.0中,它不包含在<= v0.8.25中.

资料来源:http://nodejs.org/api/os.html#os_os_endianness