原码 反码 补码 计算

问题描述:

原码 反码 补码 计算
书上说补码是原码的符号位不变,其他变,如:原码11100101
反码10011010
补码10011011
但为什么很多书上确是把上题的反码写成是00011010呢?不懂,那不是全变了吗?
一个字长为八位的计算机中,采用补码表示,符号位占一位,则-128在计算机中表示为:_____
-128的原码是10000000,其反码不应该是11111111,为什么是01111111,不是反码符号位不变,其余取反吗?
你上面说得我都明白了,就是最后一句:为什么表数范围补码要多一个?原因在于补码中真值0只对应一个编码,而在反码中真值0对应两个编码.我不太明白,为什么只对应一个编码的反而会比对应两个编码的表数范围多一个?不好意思,麻烦你再为我讲解一下,
1个回答 分类:数学 2014-12-10

问题解答:

我来补答
正数:正数的反码与原码相同.
负数:负数的反码,符号位为“1”,数值部分按位取反.
例如:符号位 数值位
[+7]反= 0 0000111 B
[-7]反= 1 1111000 B
所以楼主再仔细看一下书,究竟00011010是+26的反码,还是负数的反码
----------------------------------------
特别规定:-128的补码为10000000,所以有符号字节的补码表示范围为:-128---127
-128不在表数范围之内,所以没有反码.
但是-128有补码,8位二进制位补码的表数范围是:-128≤X≤127.
为什么表数范围补码要多一个?原因在于补码中真值0只对应一个编码,而在反码中真值0对应两个编码.
 
 
展开全文阅读
剩余:2000