buf.readInt32LE([offset])
Версия | Изменения |
---|---|
v10.0.0 | Удалено noAssert , и больше нет неявного принуждения к смещению uint32 . |
v0.5.5 | Добавлено в: v0.5.5 |
offset
<целое число> Количество байтов, которые необходимо пропустить перед началом чтения.- Должен удовлетворить
0 <= offset <= buf.length - 4
. - По умолчанию:
0
. - Возвращает: <целое число>
Считывает подписанное 32-разрядное целое число с малым концом из buf
указанного offset
.
Целые числа, считываемые из a Buffer
, интерпретируются как два дополнительных значения со знаком.
import { Buffer } from 'buffer';
const buf = Buffer.from([0, 0, 0, 5]);
console.log(buf.readInt32LE(0));
// Prints: 83886080
console.log(buf.readInt32LE(1));
// Throws ERR_OUT_OF_RANGE.
const { Buffer } = require('buffer');
const buf = Buffer.from([0, 0, 0, 5]);
console.log(buf.readInt32LE(0));
// Prints: 83886080
console.log(buf.readInt32LE(1));
// Throws ERR_OUT_OF_RANGE.
Метод Buffer.readInt32LE() используется для считывания 32-разрядного целого числа из объекта буфера с заданным смещением и возвращает результат в малом конце.
Синтаксис:
buffer.readInt32LE( offset )
Параметры: Этот метод принимает один параметр смещение который определяет положение объекта буфера. Он представляет количество байтов, которые нужно пропустить перед началом чтения. Значение смещения лежит между от 0 до буйволовой кожи.длина – 4. Значение по умолчанию равно 0.
Return value (Возвращаемое значение): Этот метод считывает 32-разрядное целое число со знаком с заданным смещением в малом конце.
Пример 1:
// Node.js program to demonstrate the
// buffer.readInt32LE() method
const buff = Buffer.from([1, 2, 3, 4, 5]);
console.log(buff.readInt32LE(0));
console.log(buff.readInt32LE(1));
Выход:
67305985
84148994
Пример 2:
// Node.js program to demonstrate the
// bufferobj.readInt32LE() method
const buff = Buffer.from([1, 2, 3, 4, 5]);
console.log(buff.readInt32LE(4))
Выход:
buffer.js:831
throw new RangeError('Index out of range');
^
RangeError: Index out of range
at checkOffset (buffer.js:831:11)
at Buffer.readInt32LE (buffer.js:984:5)
at Object. (/home/cg/root/8545664/main.js:8:18)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.runMain (module.js:604:10)
at run (bootstrap_node.js:389:7)
В приведенном выше примере показана ошибка, вызванная тем, что ее параметры не находятся в допустимом диапазоне.
Примечание:
- Чтобы получить значения в формате Little endian, вы можете использовать метод Buffer.readInt32BE ().
- Приведенная выше программа будет скомпилирована и запущена с помощью
node index.js
команды.
Ссылка: https://nodejs.org/api/buffer.html#buffer_buf_readint32le_offset