0

当我尝试查找2 23,000BigInteger的数据类型的值时,我看不到该值。

但是,对于高达2 22,000的计算,我可以BigInteger毫无问题地显示该值。

有什么解决方案或理由吗?

4

4 回答 4

8

我尝试了以下方法来BigInteger表示2^23000

BigInteger bi = new BigInteger("2");
bi = bi.pow(23000);
System.out.println(bi);

显示的数字是一个非常大的数字,跨越 6925 位。(我不会在这里粘贴它,因为它会跨越 100 行。)

这适用于 Windows XP 中的 Java 6 SE 版本 1.6.0_12。

根据 API 规范,BigInteger它是一个任意精度的整数值,这意味着它应该能够处理非常大的整数值。

于 2009-06-15T00:46:26.277 回答
4

它在 GNU/Linux 上对我来说很好用。你是什​​么意思你不能“显示”它?你的代码是什么,你得到了什么错误/问题?

于 2009-06-15T00:43:46.080 回答
1

BigInteger 的这个限制大约是 2^160 亿,尽管已经注意到一些函数在大约 2^20 亿之后不能正确运行。

我的猜测是您的控制台或 IDE 在显示很长的行时出现问题。

于 2009-06-15T06:03:14.870 回答
0

Do you need the whole thing? There is also a BigInteger.modpow(power, modulus) method which raises the integer value to the specified power and returning result % modulus -- commonly used in cryptography. This is also MUCH faster when dealing with very large exponents.

于 2009-06-15T03:20:36.467 回答