【计算机组成】定点数的除法运算

定点数的除法运算


本篇文章:

      本文主要是关于计算机中定点数除法的一些知识点,请多多指教。

本文探索:
  • 笔算除法是怎么做的?
  • 如何使用计算机硬件来模拟笔算除法的过程?
    • 恢复余数法
    • 不恢复余数法(加减交替法)

内容如下:

一、分析笔算除法

这个大家应该可以看得懂!!!
在这里插入图片描述
二、笔算除法和机器除法比较:

在这里插入图片描述
三、原码除法:
在这里插入图片描述

  • 约定:
    1. 在小数定点机中,如果进行除法,除数如果大于“1”的话就会溢出,直接结束除法计算
    2. 除数为“0”,直接报出异常

四、恢复余数法:

     大家看到这里肯定是一头雾水,大家来看下面这个实例,就会懂很多了!!!!!

  • 注意:
    1. 符号位单独进行运算,进行的是数值位的运算

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

    1. 上商5次:每上一次商,都需要判断一次余数是否溢出。如果余数减去除数大于0,“1”,然后余数逻辑左移1位,继续判断;如果余数减去除数小于0,余数需要加上减去的除数,商“0”,逻辑左移1位,然后继续判断;最后得到被除数和除数相等的位数即停止。
    2. 移位4次:商每在最低位加1位,就需要左移1位,总共移动4次;被除数需要逻辑左移4次

五、不恢复余数法:

     现在我们一起来看下定点数除法中的不恢复余数法和恢复余数法的区别!!!!!
在这里插入图片描述
很懵!!很懵!!让我们来看一个不恢复余数的实例:

在这里插入图片描述
不恢复余数的流程如下:

由于不知道商的值,所以第一位需要判断数据是否溢出

所以:

第一步:被除数+[ - y*]补,判断得:余数小于“0”,所以商“0”,余数逻辑左移“1”位,:

第二步:因为商为“0”,所以余数+[ y*]补,判断得:余数大于“0”,所以商“1”,余数逻辑左移“1”位

第三步:因为商为“1”,所以余数+[ - y*]补,判断得:余数大于“0”,所以商“1”,余数逻辑左移“1位

第四步:因为商为“1”,所以余数+[ - y*]补,判断得:余数小于“0”,所以商“0”,余数逻辑左移“1”位

第五步:因为商为“0”,所以余数+[ y*]补,判断得:余数大于“0”,所以商“1”,得到最后的商

结果:
在这里插入图片描述
特点:

  • 上商的次数需要根据数值位的位数进行判断,上商的次数是数值位数+1
  • 第一次上商是判断是否溢出,当第一次的商为“1”的时候,发生溢出
  • 余数(被除数)需要移位n次,商也需要移位n次,移位后的余数需要进行n+1次加法
  • 移位的次数判断除法是否结束

不恢复余数法(加减交替法)硬件要求:
在这里插入图片描述

A:被除数(余数)寄存器,还需要有移位的功能

X:除数寄存器

Q:商寄存器,也需要有移位的功能

作者:文小白


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值