BigInt

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:JavaScript BigInt 将包含的值

这些 API 将 C 语言的 int64_tuint64_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_countwords 数组的长度。
  • [输入] wordsuint64_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:表示 JavaScript BigInt 是正数还是负数的整数。
  • [输入/输出] word_count:必须初始化为 words 数组的长度。返回时,它将被设置为存储此 BigInt 实际所需的字数。
  • [输出] words:指向预分配的 64 位字数组的指针。

将单个 BigInt 值转换为符号位、64 位小端数组以及数组中的元素数量。

相关推荐
Robot侠6 小时前
从 Python 到 Ollama:将微调后的 Llama-3/Qwen 一键导出为 GGUF
开发语言·python·llama·qwen
刺客-Andy6 小时前
JS中级面试题 50道及答案
开发语言·javascript·ecmascript
Java小白笔记6 小时前
BigDecimal用法示例
java·开发语言·spring boot
l1t6 小时前
Python 字符串反转方法
linux·开发语言·python
Eiceblue6 小时前
使用 Python 写入多类型数据至 Excel 文件
开发语言·python·excel
luquinn6 小时前
用canvas切图展示及标记在原图片中的位置
开发语言·前端·javascript
程序员阿鹏6 小时前
OOM是如何解决的?
java·开发语言·jvm·spring
爱潜水的小L6 小时前
自学嵌入式day37,网络编程
开发语言·网络·php
阿蒙Amon6 小时前
C#每日面试题-类和结构的区别
开发语言·c#