Node.js Buffer.writeUIntBE() 方法
Buffer.writeUIntBE()方法用于使用大端格式将指定字节写入 Buffer 对象。它支持高达 6 字节的精度。当您使用除无符号整数以外的任何值时,它的行为是未定义的。
句法:
Buffer.writeUIntBE( value, offset, byteLength )
参数:此方法接受三个参数,如上所述,如下所述:
- value:指定需要写入 Buffer 对象的数量。
- offset:它指定在开始写入缓冲区之前要跳过的字节数。 offset 的值是0 <= offset <= buf.length – byteLength 。
- byteLength:它指定要写入缓冲区的字节数。 byteLength 的值是0 < byteLength <= 6 。
返回值:它返回偏移量加上写入的字节数。
下面的例子说明了 Node.js 中 Buffer.writeUIntBE() 方法的使用:
示例 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);
输出:
示例 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
After filling 6 bytes
After filling next 2 bytes
注意:以上程序将使用node index.js
命令编译运行。
参考: https://nodejs.org/api/buffer.html#buffer_buf_writeuintbe_value_offset_bytelength