注:了解了二进制再来看观感更好。
原码、反码、补码
符号位、原码:
符号位:最高位如果是0,为正数;最高位如果是1,为负数。
例如:
6:0000 0101
-6:1000 0101
同时,可以称这些二进制数为原码
正数:原码=反码=补码
例如:
- 102:
原码: 0110 0110
反码: 0110 0110
补码: 0110 0110
负数:
原码:
在不考虑符号位的情况下,先将数值转化为二进制。如果为负数,则将最高位变为1。
例如:
-102:1110 0110
反码:
如果该数为负数,则将原码“符号位不变,其余数按位取反”
例如:
-102:1001 1001
补码:
如果该数为负数,则将原码“符号位不变,其余数按位取反”,最后,再加上1。
或者:将反码加1。
例如:
-102:1110 0111
移码:
将补码的符号位直接取反即可
例题:
+0和-0:
+0:
原码:0000 0000
反码:0000 0000
补码:0000 0000
移码:1000 0000
-0:
原码:1000 0000
反码:1111 1111
补码:0000 0000
移码:1000 0000