我试图找出相关的Java 7中64 BigIntegers了以下问题。 我试图计算出一个数字非常高的功率。 代码如下,其次是对问题的描述。
import java.math.BigInteger;
public class main {
public static void main(String[] args) {
// Demo calculation; Desired calculation: BigInteger("4096").pow(800*600)
BigInteger images = new BigInteger("2").pow(15544);
System.out.println(
"The number of possible 16 bpc color 800x600 images is: "
+ images.toString());
}
}
我遇到打印此操作的结果的问题。 当该代码执行它打印消息但不值images.toString()
要隔离我开始计算的两个大国,而不是在该行的注释列出所需的计算问题。 在两个系统上我已经测试此上, 2^15544
是触发问题的最小计算; 2^15543
工作正常。
我没有在那里靠近打在主机系统上的内存限制,我不相信,我甚至接近极限VM(在任何速度与VM参数运行-Xmx1024M
-Xms1024M
没有效果)。
在互联网戳寻找答案我已经开始怀疑,我打在任何一个极限后BigInteger
或String
相关的数组(最大尺寸Integer.MAX_VALUE
),这些类型的使用内部数据存储。 如果问题是String
我想这是可以延长BigInteger
和写入,直到整个在一个时间里喷出几个字符的打印方法BigInteger
被打印出来,但我宁愿怀疑问题出在其它地方。
感谢您百忙之中阅读我的问题的时间。