Java判断是否溢出

Java判断是否溢出
int类型一般占4个字节,故取值范围 -2^31 ~ 2^31-1,对于无符号另当别论,我们的讨论建立在以补码形式存储的带符号整数。
很方便的是,Java提供了两个方便的常量来表示-2^31 ~ 2^31-1

  • 分别是Integer.MIN_VALUE和Integer.MAX_VALUE

上溢、下溢:

整数超过了2^31-1,此时不会报异常
比如Integer.MAX_VALUE+1= -2^31 
而Integer.MIN_VALUE-1= 2^31-1

加减中判断溢出:比如num1+ num2

        if(num1>Integer.MAX_VALUE-num2){
            System.out.println("上溢");
        }
        if(num2<Integer.MIN_VALUE-num2){
            System.out.println("下溢");
        }

乘除判断异常

if(num1>Integer.MAX_VALUE/10){
            System.out.println("乘法上溢");
        }
if(num1<Integer.MIN_VALUE/10){
            System.out.println("乘法下溢");
        }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。