原码
正数的二进制表示即为原码(正数的原码、反码、补码均一致)
补码
负数的补码为符号位不变,其余为取反,然后加1
补码的设计目的
(原因:带符号的数加减失效)
1、使符号位能够参与加减运算
2、将减法转换为加法运算,简化计算机电路设计
问题
按照补码定义:0000 0000 (0)与 1000 0000(-0)均可以表示0;(以8bit数为例)
且1000 0000不能转化为为任意负数(8bit表示)的原码,故将其作为8bit符号数的最小值的编码 即-127(1000 0001)-1 = -128的补码
故8bit的有符号数范围为-128 (1000 0000)~ 127(0111 1111)
注意 -127(1000 0001)
原文:http://www.cnblogs.com/penghuster/p/6403738.html