计算机中的数据(原码,反码,补码)

计算机中的数据

  • 计算机中的数据:分为数值数据和非数值数据
  • 数值数据:分为无符号数据(如我们的身份证号)和有符号数据(正数和负数)
  • 非数值数据:例如文字,图像,声音(如ASCII码)
    图源网络

有符号数据的表示

  • 符号:用0,1分别表示正,负号,放在最高位
  • 小数点(小数点均不占数位):
    定点数:约定小数点隐含在某一位置
    浮点数:小数点可以浮动

定点数与浮点数

定点数

即小数点的位置是固定不变的,根据小数点位置分为两种
在这里插入图片描述

定点小数

小数点隐含固定在最高数据位的左边,整数位用于表示符号位,用于表示纯小数
在这里插入图片描述

定点整数

小数点隐含固定在最低位的右边,最高位用于表示符号位,用于表示纯整数
在这里插入图片描述

浮点数

  • 小数点的位置由阶码规定,因此是浮动的。用来表示实数。
  • 在计算机中通常把浮点数N分成阶码和尾数两部分来表示
  • 表示形式:
    在这里插入图片描述
    例如:
    在这里插入图片描述
  • 因为小数点向左移动五位,所以阶码是5,写作2进制即为101
  • 在计算机中,约定基数为2,所以浮点数可以写作由阶码和尾数两个整数组成的数
    如:
    在这里插入图片描述
  • 一般浮点数在机器中还需要表示阶码符号,尾数符号的符号位 ,即:
    在这里插入图片描述
    示例:
    在这里插入图片描述

原码

最高位表示数的符号,其他位表示数值

  • 最高位:0表示正号,1表示负号

  • 在这里插入图片描述

反码

  • 正数的反码和原码相同
  • 负数的反码是:其原码的符号位不变,其余位按位取反

  • 在这里插入图片描述
    在这里插入图片描述

补码

  • 正数的补码与原码相同
  • 负数的补码是:其原码的符号位不变,其余位按位取反,再在最低位加1(可以这么计算)

  • 在这里插入图片描述
    在这里插入图片描述

为什么存在原码,反码,补码

首先,当前计算机数据是以补码为存储形式的。
原码就是早期用来表示数字的一种方式,可以直观的展示这个数的大小。但是原码在进行加减运算时,需要将符号位单独判断,不利于计算机运作,于是反码产生了。但是反码存在正负零的问题,于是产生了补码。补码可以很好的解决上述存在的问题,于是现在计算机对数据的存储采用补码的形式。

对补码来说 5-3 跟 5+(-3) 是相同的操作,而这两个式子本来就应该是等价的。所以补码才是最自然而合理的编码。
如果不用补码,就需要对加法和减法,正号跟负号设计若干种不同运算,大幅度降低了计算效率,增加了晶体管复杂度。

补码的详细解释

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值