You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native中无Node.js依赖转十六进制字符串到BigInt遇错求助

解决React Native中使用big-integer转换十六进制字符串的问题

问题根源

big-integer包的构造函数默认把输入当作十进制数处理,但你传入的是带0x前缀的十六进制字符串,这就导致解析失败,抛出Invalid integer错误。而原生BigInt会自动识别0x前缀并按十六进制解析,第三方包则需要你显式指定基数。

修复方案

调用big-integer时,必须显式传入第二个参数16,告诉它按十六进制规则解析字符串,两种写法都可行:

代码示例

import BigInt from 'big-integer';

let hexString = '0x9c46e9ec68e9bd4fe1faaba294cba38a71aa177534cdd1b6c7dc0dbd0abd7a7';

// 写法1:保留0x前缀,直接指定基数16
const bigIntNum1 = BigInt(hexString, 16);
console.log('转换结果', bigIntNum1.toString());

// 写法2:先去掉0x前缀,再指定基数16
const bigIntNum2 = BigInt(hexString.slice(2), 16);
console.log('转换结果', bigIntNum2.toString());

补充说明

转换后的大整数可以直接使用big-integer提供的运算方法,若需要输出可读的数值字符串,调用toString()即可。

内容的提问来源于stack exchange,提问作者Darjusch Schrand

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 02:09:09