我正在研究一个问题,我需要存储号码1101001000100000 ....直到Math.pow(2,31)
我想知道可以使用哪个功能。我尝试使用long
,BigInteger
,但他们发出错误。
我的代码:
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);
}
答案 0 :(得分:2)
@ T.J。 Crowder暗示了你的数字的惊人大小及其对存储的影响,特别是因为你试图将它保存为字符串。这个数字增长到超过20亿个数字,每个数字说2个字节。但是,因为你要附加字符串,所以你有一个算术系列来计算长度。粗略猜测一个星期天晚上它看起来像2字节x(20亿x 20亿)/ 2的总字符大约40亿千兆字节。