使用nodejs将形式十六进制缓冲区转换为int



我在Node js中有一个十六进制缓冲区,如下所示:

buffer <00 E0>

我需要使用小endianes转换为int。所以我会读E000->57344

目前我使用的方法是:

var str = "0x" + buffer [i] .toString ('16 '). toString + buffer [i-1] .toString ('16'). toString to convert to string

var result=parseInt(str(。

这个方法有效,但有时我会遇到这样的错误:buffer[0]=00,但我收到0而不是00或1,而不是01或10,

有没有其他方法可以获得这种转换或解决这个问题?

谢谢

考虑使用Buffer.readInt*LE或Buffer.readUInt*LE方法(*表示整数大小,LE表示小端序(。以您的代码为例,您可以使用Buffer.readIntLE:

Buffer.from([ 0x00, 0xe0]).readUIntLE(0, 2)

如果缓冲区大小可变:

var buffer = Buffer.from(bytes);
var result = buffer.readUIntLE(0, bytes.length) // assumes bytes.length is even

最新更新