我在java中使用了非常大的数字.我正在使用BigInteger.我的十六进制数是0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff
这是十进制的:
1.1579208921035625e+77
代码:
public class BigNumber
{
public static void main(String[] args)
{
BigInteger fp = new BigInteger(0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff);
}
}
Run Code Online (Sandbox Code Playgroud)
我得到错误:
BigNumber.java:5: error: integer number too large: ffffffff00000001000000000000000000000000ffffffffffffffffffffffff
BigInteger fp = new BigInteger(0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff);
Run Code Online (Sandbox Code Playgroud)
如何在不丢失数据的情况下使用这个大数字?这可能吗 ?我以为BigInteger只受内存的限制.
Tun*_*aki 10
那是因为你需要使用String构造函数,它也需要一个基数.在这种情况下,基数为16.
public static void main(String[] args) {
BigInteger fp = new BigInteger("ffffffff00000001000000000000000000000000ffffffffffffffffffffffff", 16);
System.out.println(fp);
}
Run Code Online (Sandbox Code Playgroud)
在您的代码段中,十六进制值将转换为a,int因为它是一个整数字面值,因为它太大而无法容纳int,所以会引发错误.
| 归档时间: |
|
| 查看次数: |
195 次 |
| 最近记录: |