📅  最后修改于: 2023-12-03 15:03:12.340000             🧑  作者: Mango
Buffer.writeUInt16BE()
方法可以将无符号16位整数值(big-endian)写入Buffer对象中指定的偏移量。下面是该方法的语法:
buf.writeUInt16BE(value, offset[, noAssert])
其中,参数的含义如下:
value
:要写入buffer的无符号16位整数值,数据类型为number;offset
:从buffer对象的哪个偏移量开始写入,数据类型为number;noAssert
:一个可选的布尔值,表示是否应进行边界检查。默认值为false。如果要写入的值超出了buffer的长度,或noAssert
参数为true
但写入的值在0到65535之外,则抛出RangeError
类型的错误。
写入成功之后,buffer对象就被更新了。例如:
const buf = Buffer.alloc(4);
buf.writeUInt16BE(1024, 1);
console.log(buf); // 输出 <Buffer 00 04 00 00>
在这个例子里,buf
对象被初始化为长度为4字节的Buffer对象。然后,调用writeUInt16BE()
方法写入数值1024,写入的位置是从第二个字节(即下标为1)开始。这个位置可以看做是buffer的偏移量。由于该方法采用big-endian格式写入,因此写入的结果是0x0400(十六进制表示,占用了两个字节),分别存储在buf对象的下标为1和下标为2的位置。
Buffer.writeUInt16BE()
方法可以将无符号16位整数值写入指定的buffer对象中;RangeError
类型的错误;