当我尝试查找2 23,000BigInteger
的数据类型的值时,我看不到该值。
但是,对于高达2 22,000的计算,我可以BigInteger
毫无问题地显示该值。
有什么解决方案或理由吗?
当我尝试查找2 23,000BigInteger
的数据类型的值时,我看不到该值。
但是,对于高达2 22,000的计算,我可以BigInteger
毫无问题地显示该值。
有什么解决方案或理由吗?
我尝试了以下方法来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
它是一个任意精度的整数值,这意味着它应该能够处理非常大的整数值。
它在 GNU/Linux 上对我来说很好用。你是什么意思你不能“显示”它?你的代码是什么,你得到了什么错误/问题?
BigInteger 的这个限制大约是 2^160 亿,尽管已经注意到一些函数在大约 2^20 亿之后不能正确运行。
我的猜测是您的控制台或 IDE 在显示很长的行时出现问题。
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.