原码表示法:x=5=+1001,则x的原码表示为:0 1001;同理x=-5,则原码为:1 1001
原码表示法的特点:简单易理解,加法运算复杂
补码表示法:将负数的原码除符号位之外全部按位取反后加1
举例: x=5=0 1001,若以8位存储,则x的补码为:0 0001001
x=-5=1 1001,则x的补码为:1 1110111
特例:原码和反码表示的数都有+0和-0的区别,但是补码表示只有一种0(也就是说+0和-0表示无差别),所以补码表示的负数可以到达-2^n,而原码和反码表示的负数到达 -(2^n-1)
移码表示法:与补码的符号位相反,见下表
总结:正数的原码、反码和补码表示都是相同的,不同在于负数用原码,补码,反码表示会有区别
举例:
真值(d) | 真值(b) | 原码 | 反码 | 补码 | 移码 |
-127 | - 01111111 | 1 1111111 | 1 0000000 | 1 0000001 | 0 0000001 |
-1 | - 00000001 | 1 0000001 | 1 1111110 | 1 1111111 | 0 1111111 |
0 | 00000000 | 0 0000000 1 0000000 | 0 0000000 1 1111111 | 0 0000000 | 1 0000000 |
+1 | + 00000001 | 0 0000001 | 0 0000001 | 0 0000001 | 1 0000001 |
+127 | + 01111111 | 0 1111111 | 0 1111111 | 0 1111111 | 1 1111111 |