Java 如何存储超大数据类型

Java 如何存储超大数据类型,java,largenumber,Java,Largenumber,我目前面临一个关于超大数字输入的问题。数字的范围可以是0到10^50。我已经做了这方面的研究,但我没有发现任何可以帮助我的东西。最接近的是BigInteger,但这对我的程序没有帮助,因为它阻止编辑大整数变量,尽管它可以存储无限大的数字。我也试过双打,但在对数字进行运算时,他们对我的程序做了一些奇怪的事情。任何建议或解决方法?您可以在java中创建和编辑BigInteger,例如: BigInteger bigInteger = new BigInteger("3"); bigInteger =

我目前面临一个关于超大数字输入的问题。数字的范围可以是0到10^50。我已经做了这方面的研究,但我没有发现任何可以帮助我的东西。最接近的是BigInteger,但这对我的程序没有帮助,因为它阻止编辑大整数变量,尽管它可以存储无限大的数字。我也试过双打,但在对数字进行运算时,他们对我的程序做了一些奇怪的事情。任何建议或解决方法?

您可以在java中创建和编辑BigInteger,例如:

BigInteger bigInteger = new BigInteger("3");
bigInteger = bigInteger.pow(600);
bigInteger = bigInteger.add(new BigInteger("20"));
bigInteger = bigInteger.subtract(new BigInteger("20"));
bigInteger = bigInteger.multiply(new BigInteger("20"));
bigInteger = bigInteger.divide(new BigInteger("20"));
您可以将BigInteger的任何部分作为整数,例如:

int i = Integer.parseInt(bigInteger.toString().substring(3, 8));

我希望这会对您有所帮助。

为什么您需要编辑
biginger
s,而不是使用他们提供的方法对其进行计算并获得新的
BigInteger
几乎肯定是正确的解决方案,您只需按预期使用它们即可。在Java提供的
BigInteger
库中,您几乎拥有了一切。请告诉我们您将要执行的操作。如果您需要的不是无限精度的整数,而是无限精度的实数(并且可以使用它们的无限精度有理近似),那么还有
BigDecimal
。我的目标是存储此数,然后将所有可能的n位迭代相加。因为大整数不允许这样做,所以我无法完成所有的原始数据函数,比如数组。你可以使用除法和余数的10次幂的组合来提取数字(例如,要从1234中提取23,您需要执行1234/10=123,然后执行123%100=23。或者只需将数字转换为
字符串
,并在结果上使用
子字符串
,以获得片段(例如,“1234”。子字符串(1,3)=“23”)。