• Node.js Video Tutorials

NodeJS v8.deserializer.readUint64() 方法



v8.deserializer 类中的 NodeJS v8.deserializer.readUint64() 方法 用于读取一个原始的 64 位无符号整数,并将其作为数组返回,其中包含其高位和低位值,如下所示:[hi,lo]。

Unit64 是一个 64 位无符号整数,其最小值为 0,最大值为 18,446,744,073,709,551,615 (2^64)-1(包含)。

我们通过将 64 位整数拆分为高 32 位整数和低 32 位整数,将其写入内部缓冲区(使用 writeUnit64() 方法)。因此,在读取(使用 readUnit64() 方法)时,hilo 都将包含 32 位无符号整数。如果未写入 lo 值,则 readWrite() 方法将读取并将其返回为 0。

语法

以下是 NodeJS v8.deserializer.readUint64() 方法 的语法:

v8.deserializer.readUint64()

参数

此方法不接受任何参数。

返回值

此方法读取一个原始的 64 位无符号整数,并将其以数组 [hi,lo] 的形式返回,其中包含两个 32 位无符号整数条目。

示例

在以下示例中,我们尝试使用 serializer.writeUnit64() 方法将原始 64 位无符号整数写入内部缓冲区。然后,我们尝试使用 deserializer.readUint64() 方法读取并返回内部缓冲区中存在的反序列化 64 位无符号整数。

const v8 = require('v8');

// Initializing the serializer object
const serializer = new v8.Serializer();

// Writing a 64-bit integer value to the internal buffer
serializer.writeUint64(3412, 87578);

// Initializing the deserializer object
const deserializer = new v8.Deserializer(serializer.releaseBuffer());
console.log(deserializer.readUint64());

输出

[ 3412, 87578 ]

示例

在示例中,我们使用 serializer.writeUint64() 方法将原始 64 位无符号整数写入内部缓冲区,并使用 serializer.releaseBuffer() 方法返回序列化后的内部缓冲区。

然后,我们使用 deserializer.readUint64() 方法读取并返回内部缓冲区中存在的反序列化 64 位整数。

const v8 = require('v8');

// Initializing the serializer object
const serializer = new v8.Serializer();
let buffer;

// Writing a 64-bit integer value to the internal buffer
writeUint64 = (lo, hi) => {
   serializer.writeUint64(lo, hi)
   buffer = serializer.releaseBuffer()
   console.log(buffer)
   readUint64(buffer)
   console.log("----------------------------------")
}

readUint64 = (buffer) => {
   const deserializer = new v8.Deserializer(buffer);
   console.log(deserializer.readUint64(buffer));
}
writeUint64(45875, 09878)
writeUint64(42134, 2431)

输出

<Buffer 96 cd 80 80 b0 e6 2c>
[ 45875, 9878 ]
----------------------------------
<Buffer ff 92 80 80 e0 92 29>
[ 42134, 2431 ]
----------------------------------

示例

如果未将任何值作为 lo 参数传递,则 readUnit64() 方法将读取并将其返回为 0。

const v8 = require('v8');

// Initializing the serializer object
const serializer = new v8.Serializer();
let buffer;

// Writing a 64-bit integer value to the internal buffer
writeUint64 = (lo, hi) => {
   serializer.writeUint64(lo, hi)
   buffer = serializer.releaseBuffer()
   console.log(buffer)
   readUint64(buffer)
   console.log("----------------------------------")
}

readUint64 = (buffer) => {
   const deserializer = new v8.Deserializer(buffer);
   console.log(deserializer.readUint64(buffer));
}
writeUint64(1456)
writeUint64(0998)

输出

<Buffer 80 80 80 80 80 b6 01>
[ 1456, 0 ]
----------------------------------
<Buffer 80 80 80 80 e0 7c>
[ 998, 0 ]
----------------------------------
nodejs_v8_module.htm
广告