Скажем, у меня есть шестнадцатеричный поток данных, который я хочу разделить на 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 байта как целое?