计算机中分为原码、反码、补码:
原码: [为了方便起见,均以8位来展示]
如 1 原码 0000 0001
反码:
1 反码 1111 1110
补码: [反码+1]
1 补码 1111 1111
计算机中底层的计算都是根据数的补码来进行计算的,主要是为了满足两个数不管加法、减法均可直接通过相加的方式实现。超过规定位数的会截取掉。
如上规则也导致了如下的现象:
Integer.max_value=2147483647 (2的31次方减去1)
Integer.min_value=-2147483648
Integer.max_value+1 = Integer.min_value
Integer.min_value-1 = Integer.max_value
数字基本类型都有对应的类及最大最小值常量
Byte.MAX_VALUE =0x7F
Byte.MIN_VALUE =0x80
Short.MAX_VALUE =0x7FFF
Short.MIN_VALUE =0x8000
Integer.MAX_VALUE =0x7FFFFFFF
Integer.MIN_VALUE =0x80000000
Long.MAX_VALUE =0x7FFFFFFFFFFFFFFF
Long.MIN_VALUE =0x80000000000000000