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

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

buf.writeUIntBE(value, offset, byteLength)

ВерсияИзменения
v14.9.0, v12.19.0Эта функция также доступна как buf.writeUintBE().
v10.0.0Удалено noAssert и больше нет неявного принуждения к смещению и byteLengthuint32
v0.5.5Добавлено в: v0.5.5
  • value <целое число> Число, в которое нужно записать buf.
  • offset <целое число> Количество байтов, которые необходимо пропустить перед началом записи. 
  • Должен удовлетворить 0 <= offset <= buf.length - byteLength.
  • byteLength <целое число><целое число> Количество байтов для записи. 
  • Должен удовлетворить 0 < byteLength <= 6.
  • Возвращает: <целое число> offset плюс количество записанных байтов.

Записывает byteLength байты valueв buf в указанном offset качестве с большим концом. Поддерживает точность до 48 бит. Поведение не определено, когда value это что-либо иное, чем целое число без знака.

Эта функция также доступна под writeUintBE псевдонимом.

import { Buffer } from 'buffer';

const buf = Buffer.allocUnsafe(6);

buf.writeUIntBE(0x1234567890ab, 0, 6);

console.log(buf);
// Prints: <Buffer 12 34 56 78 90 ab>
const { Buffer } = require('buffer');

const buf = Buffer.allocUnsafe(6);

buf.writeUIntBE(0x1234567890ab, 0, 6);

console.log(buf);
// Prints: <Buffer 12 34 56 78 90 ab>

Метод Buffer.writeUIntBE() используется для записи указанных байтов в формате big endian в объект Buffer. Он поддерживает точность до 6 байт. Его поведение не определено, когда вы используете значение, отличное от целого числа без знака.

Синтаксис:

Buffer.writeUIntBE( value, offset, byteLength )

Параметры: Этот метод принимает три параметра, как указано выше и описано ниже:

  • value (ценность): Он указывает номер, который должен быть записан в объект буфера.
  • offset (смещение): Он определяет количество байтов, которые необходимо пропустить перед началом записи в буфер. Значение смещения лежит 0 <= offset <= buf.length – byteLength.
  • byteLength (По длине): Он определяет количество байтов для записи в буфер. Значение длины байта заключается 0 < byteLength <= 6.

Возвращаемое значение: Он возвращает смещение плюс количество записанных байтов.

Ниже приведены примеры, иллюстрирующие использование метода Buffer.writeUIntBE() в Node.js:

Пример 1:

// Node.js program to demonstrate the
// Buffer.writeUIntBE() method

// Creating a buffer of size 4
const buffer_1 = Buffer.allocUnsafe(4);

// Writes byteLength bytes of value to buf
// at the specified offset.
buffer_1.writeUIntBE(0x13141516, 0, 4);

// Display the result
console.log(buffer_1);

// Creating a buffer of size 6
const buffer_2 = Buffer.allocUnsafe(6);
buffer_2.writeUIntBE(0x131314141515, 0, 6);

// Display the result
console.log(buffer_2);

Выход:

<Buffer 13 14 15 16>
<Buffer 13 13 14 14 15 15>

Пример 2:

// Node.js program to demonstrate the
// Buffer.writeUIntBE() method

// Creating a buffer of given size
const buffer = Buffer.allocUnsafe(8);
//Before writing anything
console.log("Before filling buffer");
console.log(buffer);

// To fill first 6 bytes, take offset 0
// and bytelength 6
console.log("After filling 6 bytes");
buffer.writeUIntBE(0xaa1313147586, 0, 6);
console.log(buffer);

// To fill next 2 bytes add 6 offet
// and bytelength 2
console.log("After filling next 2 bytes");
buffer.writeUIntBE(0x0123, 6, 2)
console.log(buffer);

Выход:

Before filling buffer
<Buffer 00 00 00 00 00 00 00 00>
After filling 6 bytes
<Buffer aa 13 13 14 75 86 00 00>
After filling next 2 bytes
<Buffer aa 13 13 14 75 86 01 23>

Примечание: Приведенная выше программа будет скомпилирована и запущена с помощью node index.js команды.

Ссылка: https://nodejs.org/api/buffer.html#buffer_buf_writeuintbe_value_offset_bytelength