java 最大储存32位数的条件下,计算时怎么判断一个有符号整数是否溢出

 

这道题在做的时候主要遇到的难点是如何判断整数溢出,后来参考了https://blog.csdn.net/qq_38634754/article/details/81428380之后,找到方法,
使用整数最大和最小的数除以10之后和做运算前的整数作比较就可以了。

 代码如下

 1      int target = 0;
 2      while ((x - x%10) != 0) {
 3           if ((x % 10 + target) > Integer.MAX_VALUE/10 ||  (x % 10 + target) < Integer.MIN_VALUE/10) {
 4                return 0;
 5           }
 6           target = (x % 10 + target) * 10;
 7           x = (x - x%10)/10;
 8      }
 9      target = target + x;
10      return target;

 

posted @ 2020-04-03 10:35  forever5656  阅读(623)  评论(0)    收藏  举报