假设我有一个十六进制数据流,我想将其分成3字节块,并将其读取为一个整数。
例如:给定一个十六进制字符串01be638119704d4b9a
,我需要读取前三个字节01be63
并将其作为整数114275
读取。这是我的代码:
var sample = '01be638119704d4b9a';
var buffer = new Buffer(sample, 'hex');
var bufferChunk = buffer.slice(0, 3);
var decimal = bufferChunk.readUInt32BE(0);
readUInt32BE
对于 4 字节的数据运行得很完美,但是在这里我显然得到了:
RangeError: index out of range
at checkOffset (buffer.js:494:11)
at Buffer.readUInt32BE (buffer.js:568:5)
我该如何正确地将3字节读取为整数?
readUIntBE
函数。它完美地工作了。 - kmachnicki