BigInt
类 Napi::Bigint 继承自类 Napi::Value。
表示一个 JavaScript BigInt 值。
方法
New
cpp
static Napi::BigInt Napi::BigInt::New(Napi::Env env, int64_t value);
static Napi::BigInt Napi::BigInt::New(Napi::Env env, uint64_t value);
[输入] env:用于构造Napi::BigInt对象的环境。[输入] value:JavaScriptBigInt将包含的值
这些 API 将 C 语言的 int64_t 和 uint64_t 类型转换为 JavaScript 的 BigInt 类型。
cpp
static Napi::BigInt Napi::BigInt::New(Napi::Env env,
int sign_bit,
size_t word_count,
const uint64_t* words);
[输入] env:用于构造Napi::BigInt对象的环境。[输入] sign_bit:确定结果BigInt是正数还是负数。[输入] word_count:words数组的长度。[输入] words:uint64_t类型的小端 64 位字数组。
此 API 将无符号 64 位字数组转换为单个 BigInt 值。
生成的 BigInt 计算方式为:(--1)^sign_bit × (words [0] × (2^64)^0 + words [1] × (2^64)^1 + ...)
返回一个新的 JavaScript BigInt。
构造函数(Constructor)
cpp
Napi::BigInt();
返回一个新的空 JavaScript Napi::BigInt。
Int64Value
cpp
int64_t Napi::BigInt::Int64Value(bool* lossless) const;
[输出] lossless:指示BigInt值是否被无损转换。
返回给定 JavaScript BigInt 对应的 C 语言 int64_t 原始类型。如有需要,它会截断该值,并将 lossless 设为 false。
Uint64Value
cpp
uint64_t Napi::BigInt::Uint64Value(bool* lossless) const;
[输出] lossless:指示BigInt值是否被无损转换。
返回给定 JavaScript BigInt 对应的 C 语言 uint64_t 原始类型。如有需要,它会截断该值,并将 lossless 设为 false。
WordCount
cpp
size_t Napi::BigInt::WordCount() const;
返回存储此 BigInt 值所需的字数。
ToWords
cpp
void Napi::BigInt::ToWords(int* sign_bit, size_t* word_count, uint64_t* words);
[输出] sign_bit:表示 JavaScriptBigInt是正数还是负数的整数。[输入/输出] word_count:必须初始化为words数组的长度。返回时,它将被设置为存储此BigInt实际所需的字数。[输出] words:指向预分配的 64 位字数组的指针。
将单个 BigInt 值转换为符号位、64 位小端数组以及数组中的元素数量。