在java中存储非常大的价值。 2power31

时间:2015-02-15 09:11:12

标签: java long-integer biginteger

我正在研究一个问题,我需要存储号码1101001000100000 ....直到Math.pow(2,31)我想知道可以使用哪个功能。我尝试使用longBigInteger,但他们发出错误。

我的代码:

Long a = (long) 1;
StringBuffer sb = new StringBuffer();
String z="";
sb.append(1);
for(Long i=(long) 1;i<Math.pow(2, 31)-1;i++) {
    a= (long) (Math.pow(10, i));
    z=Long.toString(a);
    sb.append(z);
}

1 个答案:

答案 0 :(得分:2)

@ T.J。 Crowder暗示了你的数字的惊人大小及其对存储的影响,特别是因为你试图将它保存为字符串。这个数字增长到超过20亿个数字,每个数字说2个字节。但是,因为你要附加字符串,所以你有一个算术系列来计算长度。粗略猜测一个星期天晚上它看起来像2字节x(20亿x 20亿)/ 2的总字符大约40亿千兆字节。