首先这是针对int占4个字节的情况。
最高位是符号位1表示是负数,0表示是非负数
因為计算机是以补码的形式来存储数字的,不管-0还是+0补码都是00 0000,
这就造成了没有任何一个数的补码是00 0000所以就可以把这个补码用来存储一個数(不要浪费资源嘛),就规定用它来存储-(int_max+1)所以int最小值是-,即 00 0000
因此我们也发现, + 1会溢出变成-
加1之后补码就变成了:00 00
所以在int中用于正數表示的有31位能表示的数就是2^31 = 个
加上0之后的话,最大值就只能到
同理负数也有31位的空间去表示
只能表示这么多个数因为-0不需要表示,所以负数就多出一个数可以表示
就用这个多出来的表示-
所以java中int能表示的最大值就是