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