v8.deserializer 类的 NodeJS v8.deserializer.readUint64() 方法用于读取原始的 64 位无符号整数,并将其作为数组返回,其高低值如下:[hi, lo]。
Unit64 是一个 64 位无符号整数,最小值为 0,最大值为 18,446,744,073,709,551,615 (2^64)-1(含)。
我们将原始的 64 位整数值写入内部缓冲区(使用 writeUnit64() 方法),方法是将它们分成高低 32 位整数。因此,在读取(使用 readUnit64() 方法)时,hi 和 lo 都将包含 32 位无符号整数。如果 no 值写为 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());
输出
例
在此示例中,我们使用 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)
输出
[ 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)
输出
[ 1456, 0 ]
----------------------------------
<Buffer 80 80 80 80 e0 7c>
[ 998, 0 ]
----------------------------------