定点除法运算

news2024/11/16 7:35:43

 

目录

 一、原码除法运算

1.原码比较法和恢复余数法

⑴比较法

⑵恢复余数法            

2.原码不恢复余数法(原码加减交替法)

 二、补码除法运算

 1、够减的判断

 2、上商规则

3、商符的确定

4、求新部分余数         

5、末位恒置1            

乘法的逆运算,思想相似,n位除转化成若干次“减法-移位”

 一、原码除法运算

1.原码比较法和恢复余数法

⑴比较法

类似于手工运算,将除数右移改为部分余数左移,每一位的上商直接写到寄存器的最低位。

设A寄存器中存放被除数(或部分余数),B寄存器中存放除数,C 寄存器用来存放商Q。

若A≥B,则上商1,并减除数;若A<B,则上商0。比较法需要设置比较线路,从而增加了硬件的代价。

  • 比较过程的流程图:

 

⑵恢复余数法            

直接作减法试探方法,不管被除数(或部分余数)减除数是否够减,都先做减法。            

部分余数为正,够减,该位商上“1”;            

部分余数为负,不够减,该位商上“0”,并要恢复余数

  • 恢复余数过程的流程图:

 部分余数的正、负是根据不同的操作数组合随机出现的,恢复余数法会使除法运算操作次数不固定,导致控制电路复杂。在恢复余数时,要多作一次加法,降低了除法的执行速度。因此很少采用。

2.原码不恢复余数法(原码加减交替法)

是对恢复余数法的改进,减少了加法时间,运算的次数固定,广泛采用。            

  • 在恢复余数法中,若第i-1次求商的部分余数为ri-1,则第i次求商操作为:r_{i}=2r_{i}-1-Y,
  • 若够减,部分余数ri=2ri-1-Y>0,商1      

       若不够减,部分余数ri=2ri-1-Y<0,商0

  • 恢复余数后,ri’=ri+Y=2ri-1,然后再左移一位,进行第i+1次操作:            

 由通式表示:          r_{i}+1=2r_{i}+(1-2Q_{i})Y        

Qi为第i次所得的商

若部分余数为正,则Qi=1,部分余数左移一位,下一次继续减除数;

若部分余数为负,则Qi=0,部分余数左移一位,下一次加除数。

加减运算交替进行,故称为原码加减交替法。

 

 注意:减去一个数等于加上这个数的变补

 需要3个寄存器。            

A和B存放被除数和除数,C寄存器用来存放商,它的初值为0。            

运算过程中A寄存器的内容为部分余数,不断地变化,最后剩下的是扩大了若干倍的余数,只有将它乘上2-n才是真正的余数。

  • 原码加减交替除法流程图:
  •  三个寄存器A、B、C,分别存放被除数、除数和商,其中A,B是n+2位,C是n+1位      
  • 一个n+2位的加法器    
  •  n+2个与或门      
  • 一个计数器      
  • 一个异或门
  •   A寄存器和C寄存器级联,具有左移一位的功能。C寄存器最高位的值将移入A寄存器的最低位。A寄存器中的初值是被除数,运算过程中变为部分余数。C寄存器最低位保存每次运算得到商值,商值同时也作为下一次操作是做加法还是做减法的控制信号。

   定点除法,为防止溢出,要求被除数的绝对值小于除数的绝对值,|X|<|Y|(|X|=|Y|除外),且除数不能为0。            

因此第一次减除数不够减,如果采用先移位后减除数的方法,得到的结果也是相同的。          

在原码加减交替法中,当最终余数为负数时,必须恢复一次余数,使之变为正余数,注意此时不需要再左移了。

  • A、B寄存器n+2位,C寄存器n+1位,n+2位的加法器、n+2个与或门、一个计数器和一个异或门。
  • A和C级联,都有左移一位功能,C寄存器最高位值移入A寄存器最低位。A寄存器初值是被除数,在运算中变为部分余数。C寄存器最低位保存每次运算得到的商值,商值同时也作为下一次操作是做加法还是做减法的控制信号。 

 二、补码除法运算

先来看一个有关例题

  •  补码加减交替除法流程图:

 

 

 1、够减的判断

       被除数(或部分余数)的绝对值大于或等于除数的绝对值,够减;反之不够减。当两数同号时,实际应作减法;两数异号时,实际应作加法。                      

 方法:被除数(或部分余数)与除数同号时,如果得到的新部分余数与除数同号,够减,否则不够减;当被除数(或部分余数)与除数异号时,如果得到的新部分余数与除数异号,够减,否则为不够减。

 2、上商规则

            补码除法的商也用补码表示,上商规则:[X]补和[Y]补同号,则商为正数,够减时上商“1”,不够减时上商“0”;[X]补和[Y]补异号,则商为负数,够减时上商“0”,不够减时上商“1”。       

     归结为:        部分余数[ri]补和除数[Y]补同号,商上“1”,反之,商上“0”。

3、商符的确定

         在求商的过程中自动形成,按补码上商规则,第一次得出的商,就是实际应得的商符。    

为防止溢出,有|X|<|Y|,第一次肯定不够减。          

 被除数与除数同号,部分余数与除数必然异号,商上“0”,恰好与商符一致;            

被除数与除数异号,部分余数与除数必然同号,商上“1”,也恰好就是商的符号

4、求新部分余数         

 [ri+1]补的通式如下:            [ri+1]补=2[ri]补+(1-2Qi)×[Y]补            

Qi表示第i步的商。商上“1”,部分余数左移,减去除数;商上“0”,部分余数左移,加上除数。  

5、末位恒置1            

商的最末一位恒置为“1”,运算的最大误差为2-n。此法操作简单,易于实现。

  • 补码加减交替除法规则

[X]与[Y]

第一次操作

[ri]与[Y]

上商

求新余数[ri+1]的操作

同号

[X]-[Y]

①同号

(够减)

1

[ri+1]=2[ri]-[Y]

②异号

(不够减)

0

[ri+1]=2[ri]+[Y]

异号

[X]+[Y]

①同号

(不够减)

1

[ri+1]=2[ri]-[Y]

②异号

(够减)

0

[ri+1]=2[ri]+[Y]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/420144.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

nssctf web入门(4)

这里通过nssctf的题单web安全入门来写&#xff0c;会按照题单详细解释每题。题单在NSSCTF中。 想入门ctfweb的可以看这个系列&#xff0c;之后会一直出这个题单的解析&#xff0c;题目一共有28题&#xff0c;打算写10篇。 [ZJCTF 2019]NiZhuanSiWei [ZJCTF 2019]NiZhuanSiWei…

本周大新闻|微软IVAS 1.2预计24年交付;华为发布AR-HUD方案

本周XR大新闻&#xff0c;AR方面&#xff0c;IVAS 1.2版预计24年交付&#xff1b;苹果AR眼镜预计26年采用超透镜方案&#xff1b;苹果首款XR头显由和硕转立讯代工&#xff1b;一加展示新款AR眼镜原型&#xff1b;镭昱点亮单片全彩Micro-LED&#xff1b;苹果智能指环专利公布。 …

windows10 java 创建合约

a. 安装Nodejs 主要是方便使用npm 命令 并配置环境变量 b.使用 npm 可以便捷地安装Solidity编译器solcjs npm install -g solc c.找个目录 创建一个solidity文件 如 // SPDX-License-Identifier: GPL-3.0pragma solidity >0.8.2 <0.9.0;/*** title Storage* dev Store…

ChatGPT引爆AI热潮,未来有哪些核心落地场景与投资机遇?

自ChatGPT面世以来&#xff0c;AI行业再度被引爆&#xff0c;AI大模型作为新一代颠覆性技术同时掀起了一波又一波热潮&#xff0c;头部厂商与创业者纷纷涌入&#xff0c;备受业界瞩目与市场追捧。 在这汹涌的狂欢背后&#xff0c;实则代表着AI发展的阶跃&#xff0c;即AI直接创…

和ChatGPT关于Swing music的一场对话(上篇)

什么是 Swing Music &#xff1f; Swing Music 是一款漂亮的自托管音乐播放器&#xff0c;适用于您的本地音频文件。就像一个更酷的 Spotify …但带上你自己的音乐。 第一次在 reddit 上看到 Swing Music&#xff0c;就被其 UI 吸引了 但源码站点的releases 中只有 windows 和 …

凌恩生物美文分享|转录组研究利器——三代全长转录组测序(Iso-Seq)

近年来&#xff0c;随着高通量测序技术的发展&#xff0c;转录组测序已经成为研究基因表达调控的主要手段。我们知道&#xff0c;很多物种的转录本非常多样和复杂&#xff0c;绝大多数真核生物基因不符合“一基因一转录本”的模式&#xff0c;这些基因往往存在多种剪切形式。通…

学习着编写了一款chrome小插件

背景介绍 半年前有幸分享了一下浏览器开发者工具的技术分享&#xff0c;当时的PPT在写至最后处总感觉理论讲解多于代码分享&#xff0c;于是琢磨着编写一下相关的代码&#xff0c;在经过一番苦思冥想后最终锁定了浏览器插件编写的实现上&#xff0c;所以在经过一番知识百科后&…

(OpenAI)ChatGPT注册登录常见问题错误代码及其解决方法

在使用 ChatGPT 的时候我们可能会碰到一些错误的代码&#xff0c;本文统一来介绍一下每一种错误以及解决方法。 错误代码1. 不能在当前国家使用 出现场景&#xff1a;一般在注册或登录的时候会出现。 原因&#xff1a;主要是ChatGPT检测到当前访问所在的地区不允许访问导致。 …

如何在Java中使用同步回调和异步回调

文章目录&#xff08;一&#xff09;同步回调&#xff08;1&#xff09;匿名内部类回调&#xff08;2&#xff09;Lambda 回调&#xff08;二&#xff09;异步回调&#xff08;1&#xff09;简单的线程回调&#xff08;2&#xff09;异步并行回调&#xff08;3&#xff09;Comp…

python 时间序列分解案例——加法分解seasonal_decompose

文章目录一、模型简介1.1 加法分解模型1.2 乘法分解模型1.3 分析步骤二、案例2.1 背景 & 数据 & python包2.2 分析过程一、模型简介 1.1 加法分解模型 加法分解模型适用于随着时间推移趋势和季节性变化不断累加&#xff0c;并且随机波动比较稳定的时间序列数据。该模…

初识linux之线程互斥

目录 一、线程互斥的概念 1. 多线程下全局数据的安全问题 2 线程互斥相关背景概念 二、线程加锁 1. 锁生成和销毁 2. 对一个锁加锁 3. 对一个锁解锁 三、解决多线程并发式访问临界资源问题 四、如何看待锁 1. 锁限制线程串行访问 2. 加锁和解锁的原子性 五、对锁进…

数学体操之牛顿数值法解方程的程序和图解

牛顿法是一种用来寻找函数零点的迭代方法&#xff0c;它基于以下思路&#xff0c;如果我们知道了一个函数在某个点的切线&#xff0c;那么函数的零点就可以通过切线与x轴的交点来近似计算。 给定一个函数,找到零点,过程如下: 选择初始点,然后使用这个点处的切线来近似,也就是…

java超详细的jvm调优

JVM调优 看这篇博客之前&#xff0c;可以先看我另外两篇 Java虚拟机&#xff08;Jvm详解&#xff09; Java垃圾回收机制(后续更新) 下面主要从以下几个方面进行展开描述&#xff1a; JVM实践调优主要步骤分析GC日志堆内存与元空间优化线程堆栈优化堆内存内部优化&#xff…

软件质量保证与软件测试 第五周(数据流测试)+第六周(集成测试开了个头)

数据流测试 1 定义/使用测试 一些概念的定义 例题理解概念 例子1&#xff1a; 定义清除的理解&#xff1a;就是说&#xff0c;如果路径上又遇到了其他定义节点&#xff0c;那就不是。 例子2&#xff1a; 第一步&#xff1a;先画程序图&#xff1a; 第二步&#xff1a;再…

什么是 AWS Lambda 冷启动问题?

什么是 AWS Lambda 冷启动问题&#xff1f; AWS Lambda 是一个无服务器计算平台&#xff0c;使开发人员能够快速构建和部署应用程序&#xff0c;而无需管理任何底层基础设施。但是&#xff0c;这种便利性也带来了一个缺点&#xff0c;即 AWS Lambda 冷启动问题。由于冷启动问题…

sgg第二天Java的语法

关键字 关键字(keyword)的定义和特点 定义&#xff1a;被Java语言赋予了特殊含义  特点&#xff1a;关键字中所有字母都为小写  注意,关键字不能被用作标识符&#xff01; 保留字 Java保留字&#xff1a;现有Java版本尚未使用&#xff0c;但以后版本可能会作为关键字使 …

Qt Quick - 弹出控件综述

Qt Quick - 弹出控件综述一、概述一、抽屉控件二、菜单控件三、弹出控件四、工具提示控件一、概述 控件功能Dialog带有标准按钮和标题的弹出式对话框&#xff0c;用于与用户进行短期交互Drawer可以用滑动手势打开和关闭的侧面板Menu弹出式菜单&#xff0c;可以用作上下文菜单或…

springboot事务

对于从事 java 开发工作的同学来说&#xff0c;spring 的事务肯定再熟悉不过了。 在某些业务场景下&#xff0c;如果一个请求中&#xff0c;需要同时写入多张表的数据。为了保证操作的原子性&#xff08;要么同时成功&#xff0c;要么同时失败&#xff09;&#xff0c;避免数据…

设备是如何实现延时关机的

文章目录1. 引言2. 延时关机的实现方式2.1 自建定时服务实现2.2 RocketMQ中间件实现2.2.1 生成端demo2.2.2 消费端demo3. 结尾1. 引言 在设备联动中&#xff0c;有些场景需要保持设备继续工作一段时间再关机。比如在厨房场景下&#xff0c;存在燃气灶和烟机的联动场景&#xf…

基于kettle部署图形化界面(spoon)

最近使用kettle部署windows&#xff0c;mac、linux服务遇到的坑做一个总结。 1、mac、linux部署&#xff1a; 1⃣️拉取docker镜像 docker pull hiromuhota/webspoon 2⃣️创建并运行docker容器 docker run -d -p 8080:8080 hiromuhota/webspoon --name webspoon --restar…