源码

正数:不变 负数:第一位的变成为符号位 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