使用nodejs将表单十六进制缓冲区转换为int

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

buffer <00 E0>

我需要使用小字节序转换为 int。所以我会读 E0 00 -> 57344

目前我使用这种方法:

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

var 结果 = parseInt (str)。

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

有没有另一种方法来获得这个转换或解决这个问题?

谢谢


慕容708150
浏览 98回答 1
1回答

拉风的咖菲猫

考虑使用Buffer.readInt*LE 或 Buffer.readUInt*LE方法(* 代表整数大小,LE 代表小端)。以您的代码为例,您可以使用Buffer.readIntLE:Buffer.from([&nbsp;0x00,&nbsp;0xe0]).readUIntLE(0,&nbsp;2)如果您有可变缓冲区大小:var&nbsp;buffer&nbsp;=&nbsp;Buffer.from(bytes); var&nbsp;result&nbsp;=&nbsp;buffer.readUIntLE(0,&nbsp;bytes.length)&nbsp;//&nbsp;assumes&nbsp;bytes.length&nbsp;is&nbsp;even
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript