源码
正数:不变 负数:第一位的变成为符号位 1代表负数
+1:0000 0001
-1:1000 0001
反码
正数:不变 负数:符号位不变,其他值取反
+1:0000 0001
-1:1111 1110
补码 [计算机中唯一的存储数值的方式]
正数:不变 负数:反码 + 1
+1:0000 0001
-1:1111 1111
int i = 5; int j = 10; System.out.println(i + ~j); 0000 1010 10 0000 0101 5 1111 0101 ~10 1111 1010 5 + ~10 这里是补码,计算机是以源码的方式来显示的 1111 1010 - 1 变成为反码 1111 1001 反码变成为源码 1000 0110 -6