• 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
廣告