`

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;
	}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics