【发布时间】:2018-09-09 03:11:12
【问题描述】:
我尝试使用 Unity 的 BigInteger 实现,但它仍然溢出(或者我可能以错误的方式使用?我也不确定,它只能执行 20 个字符的整数,类似于 64 位).... 这个这就是我的工作方式,我有一个十六进制,它有 64 个字符,然后我要进行算术计算,我想先将其转换为十进制形式并将其存储在变量中。
public BigInteger x = 0;
然后在这里溢出... HexToDecimal 是一个函数,它接受一个十六进制字符串并返回它的十进制形式。
x = HexToDecimal(hex);
HexToDecimal 的示例输出是
105627842363267744400190144423808258002852957479547731009248450467191077417570
这是我想要存储的数字的理想大小。 如果我使用非常小的数字,例如数十万或其他东西,它会起作用。但是 BitInteger 有点将其限制为 20 个字符,因为我尝试声明这样的变量,只是为了知道 BitInteger 限制我的位置
public BigInteger x = 10000000000000000000
当我在那里添加另一个“0”时,它会抛出一个错误,指出积分太大
【问题讨论】:
-
展示你如何使用
BigInteger以及它是如何溢出的 -
我刚刚声明了一个位整数类型的变量。比如“public BitInteger x;”
-
编辑您的问题并添加。还要说明为什么你认为它 id 溢出。您当前的代码未显示有效代码或溢出证明
-
完成编辑:)