You are currently viewing Node.js Buffer | Метод Buffer.readInt32LE()

Node.js Buffer | Метод Buffer.readInt32LE()

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