计算机原码、反码、补码、移码转换及范围

计算机原码、反码、补码、移码转换及范围

数据的表示:

 

      数值1

    数值-1

    1-1

   原码

0000 0001

1000 0001

1000 0010

   反码

0000 0001

1111 1110

1111 1111

   补码

0000 0001

1111 1111

0000 0000

   移码

1000 0001

0111 1111

1000 0000

 

  原码:把一个数转成二进制形式,二进制不足8位即在左边补零。最左边的位又叫做符号位,正数为0,负数为1 。如图,在原码中 1+(-1)=-2,可见原码不能直接相加减。于是引入反码类计算。

  反码:反码正数值和原码相同,不用转换。负数值除符号位(最左边)外,其余取反( 0—>1,1—>0)。根据图中把1+(-1)反码相加减可以看等于0是正确的。

  补码:补码正数值也和原码相同,不用转换。负数值在反码基础上在最低位加 1 即可。

  移码:在补码基础上,把补码符号位取反  即可,其余不做改变。

 

数值表示范围:

 

 

               整数

  原码

  -(2n-1-1)~2n-1-1

  反码

  -(2n-1-1)~2n-1-1

  补码

  - 2n-1 ~ 2n-1-1(大一个范围)

为什么补码大一位呢?

  答:因为原码和反码有两种0 :

  正0{原码:0000 0000 ,反码:0000 0000}

  负0{原码:1000 0000 ,反码:1111 1111}

  而补码0只有唯一的表示(0000 0000),而(1000 0000)被人为定义为最小负数,即-128。所以补码能表示的真值比原码多      一个。

  • 6
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值