Java Integer Addition Subtration Overflow 整数加减溢出

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java Integer Addition Subtration Overflow 整数加减溢出相关的知识,希望对你有一定的参考价值。

leetCode有道题Reverse Integer,因为int的最大值为2的31次方减一,最小值为-2的31次方。

我一开始的代码将res递归加放在try中,以为溢出会有异常,然而并没有。

因为出传入的参数为int类型,且内存和时间要求都能满足,所以long存放中间结果足够了。leet上有个哥们用了一种更机智的溢出检测(自己去看:D)

我的代码:

public class Solution {
    public int reverse(int x) {
        if(x<=9&&x>=-9||x==0){
            return x;
        }
        boolean nagetive=false;
        int y=x;
        if(x<0){
            y=-x;
            nagetive=true;
        }
        ArrayDeque<Integer> s=new ArrayDeque();
        while(y>0){
            s.add(y%10);
            y/=10;
        }
        long res=0L;
        while(s.size()>=1){
            res+=s.poll()*Math.pow(10,s.size());
        }
        if(res>Integer.MAX_VALUE||res<Integer.MIN_VALUE){
            return 0;
        }
        return nagetive?(int)-res:(int)res;
    }
}

 

java 8中有溢出检测的加方法。

Stack Overflow:https://stackoverflow.com/questions/3001836/how-does-java-handle-integer-underflows-and-overflows-and-how-would-you-check-fo

以上是关于Java Integer Addition Subtration Overflow 整数加减溢出的主要内容,如果未能解决你的问题,请参考以下文章

java 592. Fraction Addition和Subtraction.java

java 592. Fraction Addition和Subtraction.java

java 592. Fraction Addition和Subtraction.java

java 592. Fraction Addition和Subtraction.java

java 592. Fraction Addition和Subtraction.java

java 592. Fraction Addition和Subtraction.java