java基础之int数值溢出

来源:互联网 发布:xbox360手柄驱动mac版 编辑:程序博客网 时间:2024/06/05 05:40

int类型在java中占据4个字节,共32位,除去最高位符号位,可以表示的最大值为2^31,即2147483647.

当数据运算结果超过int类型的最大值时,就会发生数据溢出:

看一下两段读代码:

代码1:

public class IntOutOfBoundary {

public static void main(String[] args) {
int a=2147483647;
int b=2;
int c=a+b;
System.out.println(c);
}

}

输出结果:c=-2147483647,发生了数据溢出,如果b=1,c=-2147483648,为int类型表示的最小值.

代码2:

public class IntOutOfBoundary {
public static void main(String[] args) {
int a=2147483647;
long b=2;
long c=a+b;
System.out.println("c="+c);
}
}


输出结果:c=2147483649c=2147483649,数据运算时,发生了自动类型转换,结果也为长整型,不会发生数据溢出.实际变成中,可以将运算的数值进行强制类型转换,避免数值溢出.


原创粉丝点击