编码
下面的内容都以八位二进制数为例
Binary (即无符号数)
直接解读二进制数,范围为 0-255
Signed-Magnitude,,
- 将最高位作为符号位
0 -> plus
1 -> minus
- 一个数要取相反数只需将符号位反转
- 范围:-127 to 127
- 存在
+0
和-0
One's Complement,,
- 将最高位作为符号位
- 将所有位反转以取相反数
- 范围:-127 to 127
- 存在
+0
和-0
Two's Complement,,
- 将最高位作为符号位
- 范围:-128 to 127
- 将所有位反转再加一以取相反数
编码总结
Code (8-bit) | Binary (unsigned) | 2’s compl | 1’s compl | Sign-magn |
---|---|---|---|---|
1111 1111 | 255 | -1 | -0 | -127 |
1111 1110 | 254 | -2 | -1 | -126 |
1100 0000 | 192 | -64 | -63 | -64 |
1000 0011 | 131 | -125 | -124 | -3 |
1000 0010 | 130 | -126 | -125 | -2 |
1000 0001 | 129 | -127 | -126 | -1 |
1000 0000 | 128 | -128 | -127 | -0 |
0111 1111 | 127 | +127 | +127 | +127 |
0100 0001 | 65 | +65 | +65 | +65 |
0100 0000 | 64 | +64 | +64 | +64 |
0000 0011 | 3 | +3 | +3 | +3 |
0000 0010 | 2 | +2 | +2 | +2 |
0000 0001 | 1 | +1 | +1 | +1 |
0000 0000 | 0 | +0 | +0 | +0 |