int数组转数字
//把正数当成负数来弄,避免逼近正数maxvalue产生的麻烦 int[] digits = new int[]{5,3,4,7,9,11};long limit = -Long.MAX_VALUE;long result = 0;int i=0;result = -digits[i];for(i=1;i<digits.length;i++){result *= 10;result -= digits[i];}
public Number getnum(){int[] digits = new int[]{5,3,4,7,9,11};long limit = -Long.MAX_VALUE;long result = 0;int i=0;result = -digits[i];for(i=1;i<digits.length;i++){if(result<limit){//如果result比最小值还小,说明溢出了return new BigInteger(new String(digits,0,digits.length));}result *= 10;if(result - digits[i]<limit){//运算之后溢出return new BigInteger(new String(digits,0,digits.length));}result -= digits[i];}return -result;}