所以这应该显示2 ^ 70000,而控制台显示一个空白屏幕。我尝试进入控制台设置并关闭"限制控制台输出"但它仍然显示一个空白屏幕。此数字是否显示大,控制台无法在一行显示?如果有的话,我可以将它分成多行,这样我就可以查看了吗?
public static void main(String[] args) {
// TODO Auto-generated method stub
BigInteger num = new BigInteger ("2");
int exponent = 70000;
BigInteger answer = new BigInteger ("1");
answer = num.pow(exponent);
System.out.println(answer);
}
答案 0 :(得分:0)
虽然BigInteger 理论上无限制,但是你的操作系统和JVM设置了实际的限制,我猜你正在打它们。 2 ^ 70000约为10 ^ 21000。这是一个荒谬的大数字。
(我的Excel副本溢出2 ^ 2000.我的Windows计算器副本也溢出。)
答案 1 :(得分:0)
你无法计算它,因为BigInteger在它的实现中使用了int []数组。数组中的每个位置都包含一个数字,数组maximuim的大小为Integer.MAX_VALUE - 5
。在那之后你应该得到:
Requested array size exceeds VM limit
也许这个异常由BigInteger处理,这就是为什么你得到空白的原因。