【Dognle】【计算机硬件】原码、反码、补码、移码

原码

将最高位用作符号位(0表示正数,1表示负数),其余各位代表数值本身的绝对值表示形式

 例如+1:00000001-1:1000 0001

再直接使用原码在计算时会有麻烦,十进制1-1相加得0,但是二进制原码相加

(0000 0001)2+(1000 0001)2=(10000010)2,结果得-2,所以,使用原码直接参数计算可能会出现错误的结果,故而原码的符号位不能直接参与计算,必须和其他位分开,这样会增加硬件的开销

反码

正数的反码与原码相同,负数的反码符号位为1,其余各位为该数绝对值的原码按位取反

例如-1:1111 1110,第一个“1”是符号位不变,后面的“111 1110”则是由原码“000 0001”取反得到,即“1”换成“0”,“0”换为“1”得到。

由于,(0000 0001)2+(1111 1110)2=(1111 1111)2,其中(1111 1111)2是负0,由于普通观念中,0不分正负,故反码的符号位可直接参与计算。

补码

正数的补码与原码形同,负数的补码是该数的反码加1,即补“1

-1:1111 1111是由1000 0001转换成反码11111110,再补“1

(1111 1110)2+(0000 0001)2=(0000 0000)2,直接使用补码进行计算的结果也是正确的,故而补码的符号位也可以直接参与计算

对于一个补码表示的数,要计算其原码,只要对它再次求补即可得到该数的原码

移码

移码是对补码的符号位取反得到的,只用于表示浮点数的阶码

例如-1:0111 1111

 

+1-18位二进制)为例:

 

原码

反码

补码

移码

正数

0000 0001

原码

原码

1000 0001

负数

1000 0001

1111 1110

1111 1111

0111 1111

可计算

特征

符号位(最高);

0正,1

正不变,

负非符号位取反

正不变,

反码并补1

补码符号位取反

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值