正数:正数的反码与原码相同。
负数:负数的反码,符号位为“1”,数值部分按位取反。
例如: 符号位 数值位
[+7]反= 0 0000111 B
[-7]反= 1 1111000 B
----------------------------------------
特别规定:-128的补码为10000000,所以有符号字节的补码表示范围为:-128---127
-128不在表数范围之内,所以没有反码。
但是-128有补码,8位二进制位补码的表数范围是:-128≤X≤127。
为什么表数范围补码要多一个?原因在于补码中真值0只对应一个编码,而在反码中真值0对应两个编码。
l例子:
正数的原码,补码,反码都相同,都等于它本身 负数的补码是:符号位为1,其余各位求反,末位加1 反码是:符号位为1,其余各位求反,但末位不加1 也就是说,反码末位加上1就是补码 和上面一样 原码: -74的原码11001010,第一个1表示负号,如果是正的74,那它的原码就是01001010 就是74不断的除2取余所得的结果,一直除到1或0为结束,再从下往上取所得的结果 反码: 负数的反码是除符号位为1外,其他位全取反 -74=10110101 补码: 是在反码的基础上+1 -74=10110110