符号-数值码 |
2的补码 (负数符号位保留、数值码取反,加一 正数补码=反吗=原码) |
偏移二进制码 (符号位取反) |
|
+7/8 | 0111 | 0111—>0111 | 1111 |
+6/8 | 0110 | 0110—>0110 | 1110 |
+5/8 | 0101 | 0101—>0101 | 1101 |
+4/8 | 0100 | 0100—>0100 | 1100 |
+3/8 | 0011 | 0011—>0011 | 1011 |
+2/8 | 0010 | 0010—>0010 | 1010 |
+1/8 | 0001 | 0001—>0001 | 1001 |
+0 | 0000 | 0000—>0000 | 1000 |
-0 | 1000 | 1111—>0000 | 0111 |
-1/8 | 1001 | 1110—>1111 | 0110 |
-2/8 | 1010 | 1101—>1110 | 0101 |
-3/8 | 1011 | 1100—>1101 | 0100 |
-4/8 | 1100 | 1011—>1100 | 0011 |
-5/8 | 1101 | 1010—>1011 | 0010 |
-6/8 | 1110 | 1001—>1010 | 0001 |
-7/8 | 1111 | 1000—>1001 | 0000 |
-8/8 | 1000 |
注意:用8位2进制来表示一个数的话,-8的源码为1000 1000,反码为1111 0111,补码为1111 1000 ,根据扩展是符号位向高位扩展的原理,前面的1111是表示负号位的扩展,所以可以直接等于1000,一般都是8位扩展到16位。
原文:http://www.cnblogs.com/sunnykemy/p/4382478.html