参考新文一文搞明白位运算、原码、反码、补码
此文为32位二进制
连续的32位容易混乱,我用8位一组的方式分割
正数的二进制
原码,反码,补码相同,也就是二进制数
负数的二进制
原码:第一位表示符号,0表示正,1表示负
00000000 00000000 00000000 00000001
1的原码10000000 00000000 00000000 00000001
-1的原码
反码:除了第一位符号,其他位都取反,0换1,1换010000000 00000000 00000000 00000001
-1的原码11111111 11111111 11111111 11111110
-1的反码
补码:反码+1,也就是所表示的二进制数11111111 11111111 11111111 11111110
-1的反码11111111 11111111 11111111 11111111
-1的补码
1的二进制表示
因为正数的原反补码相同00000000 00000000 00000000 00000001
1的原码00000000 00000000 00000000 00000001
1的反码00000000 00000000 00000000 00000001
1的补码 也就是1的二进制表示
-1的二进制表示
10000000 00000000 00000000 00000001
-1的原码11111111 11111111 11111111 11111110
-1的反码11111111 11111111 11111111 11111111
-1的补码 也就是-1的二进制表示
-12的二进制表示
10000000 00000000 00000000 00001100
-12的原码11111111 11111111 11111111 11110011
-12的反码11111111 11111111 11111111 11110100
-12的补码 也就是-12的二进制表示