展开全部
一个大数一般都是使用数组存储的。
比如使用byte[],一个byte可以表示0-99,或者使用字符e68a8462616964757a686964616f31333335303633串存储大数.那么,class BigInteger {
public byte[] x;
public String y;
public BigInteger bignumbX(int len) {
if(len<=0) return null;
BigInteger r = new BigInteger();
r.x = new byte[(len+1)/2]; // 得到需要多少个byte表示大数
int i = 0; Random rnd = new Random();
while(len>2) {
r.x[i++] = rnd.nextInt(100); len-=2;
}
if(len==1) r.x[i] = rnd.nextInt(9)+1; //1-9, 最高位不为0
else r.x[i] = rnd.nextInt(90)+10; // 10-99
return r; // 结果为r.x
}
public BigInteger bignumbY(int len) {
if(len<=0) return null;
BigInteger r = new BigInteger();
Random rnd = new Random();
r.y = ""+(rnd.nextInt(9)+1); len--; // 1-9, 最高位不为0
while(len>0) r.y += rnd.nextInt(10);
return r; // 结果为r.y
}
}
处理加减乘除需要自己再写其他函数。