原码、补码、反码

原码、补码、反码

数据的常见分类

在这里插入图片描述

机器数和机器数的真值

  • 计算机中所有的数据都是以二进制保存的;

  • 在机器数中,使用最高位来表示数字的正负:“1”为负,“0”为正。一个字长为8位;

  • 机器数的真值就是机器数所对应的真正的数值,例如:例如:

    ​ +3(真值)=0000 0011 +3就是真值

    ​ -3(真值)=1000 0011 -3就是真值

原码

  • 符号位:首先确定一个数的正负,如果是正数,首位用0表示,如果是负数,首位用1表示;
  • 有效位:真值的绝对值转换二进制形式;
  • 符号位有效位拼接到一起,就得到了原码;

反码

  • 正数:正数的反码和原码相同,例如:

    +3=0000 0011【原】=0000 0011【反】

  • 负数符号位不变,其余各位直接取反(1变成0,0变成1),例如:

    -3 = 1000 0011【原】=1111 1100【反】

补码

  • 正数正数的原码反码补码全部相同,例如:

    +3=0000 0011【原】=0000 0011【反】=00000011【补】

  • 负数:求得原码,再求反码,最后一位+1,例如:

  • -3 = 1000 0011【原】=1111 1100【反】=11111101【补】

为什么需要反码和补码

  • 反码:在设计计算机的时候只设计了加法器,没有减法器使用加法计算来表示减法,但是会出现正负相加 0的表示不唯一;
  • 补码:反码解决了没有减法器的问题,但是会出现正负相加0的表示不唯一,所以使用补码进行修正。

补码转原码

  • 正数:补码=反码=原码
  • 负数加-1,符号位不变,其余取反(将补码当成原码,再求一遍补码),例如:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xPYFY76a-1590409500404)(原码、补码、反码/图片/image-20200525170309921.png)]

反码转原码

  • 正数:不用转
  • 负数:符号位不变,其余取反
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值