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

Опубликовано: 5 Августа, 2021

Метод Buffer.readIntLE () используется для чтения количества байтов из буфера по заданному смещению и интерпретирует результат как знаковое значение с дополнением до двух.

Синтаксис:

 buffer.readIntLE (смещение, byteLen)

Параметры: этот метод принимает два параметра, как указано выше и описано ниже:
смещение: указывает положение буферного объекта. Он представляет количество байтов, которые нужно пропустить перед началом чтения. Он находится в диапазоне от 0 до buffer.length - byteLen .
byteLen: это целочисленное значение, указывающее количество байтов, которые должны быть прочитаны с данного смещения. Значение этого параметра находится в диапазоне от 0 до 6 .

Возвращаемое значение: возвращает целочисленное значение с байтами byteLen от указанного смещения с прямым порядком байтов.

Пример 1:




// Node.js program to demonstrate the
// buffer.readIntLE( offset, byteLen ) method 
const buff = Buffer.from([0x11, 0x12, 0x34, 0x56, 0x89, 0xcd]);
  
console.log(buff.readIntLE(0, 5).toString(16));
  
console.log(buff.readIntLE(0, 4).toString(16));

Выход:

-76a9cbedef
56341211

Пример 2:




// Node program to demonstrate the
// buffer.readIntLE( offset, bytelen ) method
const buff = Buffer.from([0x11, 0x12, 0x34, 0x56, 0x89, 0xcd]);
console.log(buff.readIntLE(4, 6).toString(16));
console.log(buff.readIntLE(3, 0).toString(16));

Выход:

buffer.js: 831
    throw new RangeError ('Индекс вне допустимого диапазона');
    ^

RangeError: индекс вне допустимого диапазона
    в checkOffset (buffer.js: 831: 11)
    в Buffer.readIntLE (buffer.js: 918: 5)
    на объекте. (/home/cg/root/8545664/main.js:8:17)
    в Module._compile (module.js: 570: 32)
    в Object.Module._extensions..js (module.js: 579: 10)
    в Module.load (module.js: 487: 32)
    в tryModuleLoad (module.js: 446: 12)
    в Function.Module._load (module.js: 438: 3)
    в Module.runMain (module.js: 604: 10)
    при запуске (bootstrap_node.js: 389: 7)

В приведенном выше примере показана ошибка, поскольку ее параметры находятся за пределами допустимого диапазона.

Примечание:

  • Чтобы получить значения в формате Big endian, вы можете использовать метод Buffer.readIntBE ().
  • Вышеупомянутая программа будет скомпилирована и запущена с помощью команды node index.js .