补码运算
正数的补码是原码。负数的补码是原码基础上,保留符号位,其余各位取反最后再加1。
举例:
-5-3
-5
原码 1000 0101
取反 1111 1010
加一 1111 1011
-3
原码 1000 0011
取反 1111 1100
加一 1111 1101
相加 1111 1000 (-8的补码)
减一 1111 0111
取反 1000 1000 (-8的原码)
-1
原码 1 0000 0001
补码 1 1111 1111
0,补码 0
Integer.MIN_VALUE= 1000 0000 0000 0000 ... = -2^32
结果是原码。
Integer.max = 01111.... = 2^32-1