计算机中小数的表示(定点数和浮点数存在的意义)及对应的运算--计组运算器

1.计算机中小数数据是如何表示的呢?

原码,反码和补码可以实现正负整数的表示,但是对于小数部分却没办法表示。为了合理的表示小数,定点数确定了小数点的位置,固定了小数的位数,但是这样会导致范围分配不合理(比如我设置了很多的小数位数以至于我的整数位数剩余很少,现在我想表示一个很大的整数,则会出现问题),所以设置了浮点数,浮点数的小数点位数不固定,可以自由变动,虽然提高了表示范围,但也要更多的存储开销。两者各有利弊,并且具有各自的计算方式,但是大多都是在加法器的基础上进行了一定的修改。

2 补码
  • 两个补码相加,等于相加取补码(减法相同)
  • 正溢出:两个正数相加—负溢出
  • 溢出的表现
    1.数值的最高位和符号位只有一个进位;
    2.使用双符号位,11表示正,00表示负,变成异号则溢出(10负溢出,01正溢出)
  • 补码加减法计算器
    在这里插入图片描述
3 移码
  • 为什么要引入移码:为了在后续对阶时更加方便 2^-1和2 ^3 -1:111 3:011 如果直接使用补码,那么出现了错误,所以需要使用移码;移码的实质就是在原码之上加上一个最高位-1+4=3=011 3+4=7=111(比较大小,不分正负)
  • 相加的移码=移码与补码的和
  • 溢出的判断:双符号的最高符号位为1则溢出,低符号位为0,上溢
4 移位
  • 逻辑移位:无符号数
  • 算术移位:符号位不变
    (1)右移都补零,可能会溢出
    (2)左移针对情况,原码补零,补码符号位 反码左移正数补零,负数补一;右移符号位来补

在这里插入图片描述

5 定点数的运算
5.1 乘法
  • 原码乘法:
    (1)同10进制乘法:按位直接乘,结合右移
    在这里插入图片描述
    (2)原码一位乘法:符号位单独计算,取两者的绝对值,将Y的倒数几位依次乘上|x|,并右移(先得到的是后面的y与x相乘的结果)。
  • 补码乘法
    (1)校正法:符号位单独处理,取小数部分,类似原码一位乘法,最后根据符号位是否为负数,决定要不要加上[-x]补

(2) Booth算法 :类似补码移位乘法,但本次要带上符号位(几位加几次),最后一位先补零,然后逆序取两位判断应该加啥,11/00不加…

5.2 除法
  • 原码除法
    (1)手工除法
    在这里插入图片描述
    (2)恢复余数算法:除法分成余数(R)和商(Q),余数的符号取决于被除数的符号,商的符号取决于两者。重复(1)-(3)

(3)不恢复余数算法

在这里插入图片描述

6 浮点数

对阶(小阶靠向大阶),尾数计算(具体方法选择),规格化,舍入

  • 加减
    (1)0操作数检查
    (2)对阶:小阶向大阶(避免左移)

(3)尾数加减
(4)规格化:
若尾数溢出,则右规一位(只能一次)
若尾数过小,则需要左规
(5)舍入:截断,0舍1入,末位恒置1

  • 乘除(尾数只能左规一位)
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值