Java的基本数据类型都是有符号数,我们知道表示数据的字长是固定的,例如int的长度为32位(4byte),在进行加减乘除时,得到的结果可能需要超过32位字长才能精确表示,但是操作系统限制了数据类型的精度不是无限的,只能使用规定的字长,这就导致了结果会被截断,从而产生了溢出。 public class OverflowTest { public static void main(String[] args) { //正溢出 Integer x = Integer.MAX_VALUE; Integer y = 1; System.out.println("x+y=" + (x+y));//x+y=-2147483648 //负溢出 Integer nx = Integer.MIN_VALUE; Integer ny = -1; Integer nz = nx + ny; System.out.println("x+y=" + nz); //x+y=2147483647 } }
有符号数加法溢出
最新推荐文章于 2024-04-24 11:42:58 发布