定点数除法

2023-10-31 18:50
文章标签 除法 定点数

本文主要是介绍定点数除法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

定点数除法

    • 一,手工除法运算方法
    • 二,原码除法运算方法
    • 三,原码加/减交替除法运算方法(不恢复余数法)
    • 四,原码加/减交替除法实现逻辑
    • 五,阵列除法

一,手工除法运算方法

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

二,原码除法运算方法

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

在这里插入图片描述 图 4 图4 4
由于运算步数不确定,这样设计电路的缺陷是电路复杂,难以控制。

三,原码加/减交替除法运算方法(不恢复余数法)

在这里插入图片描述 图 5 图5 5
如图五,我们发现可以不恢复余数直接将其左移再加Y得到的结果也是4Ri-Y,这样我们就可以确定运算步数了,看图6就可以理解了。
在这里插入图片描述
图 6 图6 6
根据改进的方法,如果余数小于零,商上零,下一步操作就是左移+[Y],得到的余数若大于零,就-[Y](+[-Y]),这样每一步就能上商,也就能确定步数了,而且也简介得多。

四,原码加/减交替除法实现逻辑

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

五,阵列除法

在这里插入图片描述 图 8 图8 8
图8中间的小虚线框为全加器FA,通过外面虚线框的改进,成为了可控加/减法(CAS)单元,可实现加法和减法。

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

我们从第一排开始,因为第一步一定是减法(这个肯定想得到吧),所以p=1,然后这个p到最右边有个拐角直接连在进位位上(因为减法的话需要将减数变为补码,所以取反后需要进位位加一,这个设计很巧妙,如果是加法,P=0,就不会进位),除数(Y)与被除数(X)相减,最左边的CAS的进位输出是商,且本位商决定下一步是执行加操作还是减操作,执行完一排后,就将被除数左移一位(CAS斜着连实现,也可以理解为除数右移一位),最后最左边的进位输出Q1,Q2,Q3…就是商,各R就是余数。

参考文献:https://www.icourse163.org/course/HUST-1003159001
非常感谢秦磊华老师的讲解,侵权删

这篇关于定点数除法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/317407

相关文章

高精度计算(代码加解析,洛谷p1601,p1303)除法待更新

目录 高精度加法 高精度减法 高精度乘法 高精度加法 我们知道在c++语言中任何数据类型都有一定的表示范围。当两个被加数很大时,正常加法不能得到精确解。在小学,我们做加法都采用竖式方法。那么我们也只需要按照加法进位的方式就能得到最终解。 8 5 6+ 2 5 5-------1 1 1 1 加法进位: c[i] = a[i] + b[i];if(c[i] >=

信息学奥赛初赛天天练-83-NOIP2014普及组-基础题2-输入设备、输出设备、操作系统、二进制、整数除法、while、do while循环

1 NOIP 2014 普及组 基础题2 4 以下哪一种设备属于输出设备( ) A 扫描仪 B 键盘 C 鼠标 D 打印机 5 下列对操作系统功能的描述最为完整的是( ) A 负责外设与主机之间的信息交换 B 负责诊断机器的故障 C 控制和管理计算机系统的各种硬件和软件资源的使用 D 将没有程序编译成目标程序 11 下列各无符号十进制整数中,能用八位二进制表示的数中最大的是( ) A 296

简单除法(简单枚举优化)

//输入正整数n按从小到大的顺序输出所有形如abcde/fghij=n的表达式其中a到j正好是数字0到9的一个排列 //输入62输出 //79546/01283=62 //94739/01528=62 //虽然是暴力求解,但是做了一些优化。 #include<iostream>#include<algorithm>using namespace std;void panduan(i

UESTC 1712 Easy Problem With Numbers 除法对和数取模,分解,线段树

附上神牛原版思路: 如果这个题只有乘法,那么你肯定会做吧?线段树更新区间查找区间。 那么有除法呢?当一个数x和m互质的时候,除以x可以改为乘以x的逆元。(至于互质的数求逆元用扩展欧几里德,这个网上可以随便找到) 但是这题并不能保证除的数与m互质吧?什么时候x与m不互质呢?就是x与m含有公因子吧? 那么我们一开始就把m分解,分解出来m有p1,p2,p3,p4...pn等一

If We Were a Child Again(大数除法、求余)

Description         “Oooooooooooooooh!          If I could do the easy mathematics like my school days!!          I can guarantee, that I’d not make any mistake this time!!”          Says a smar

编写程序,采用辗转相除法求解两个正整数的最大公约数

--编写程序,采用辗转相除法求解两个正整数的最大公约数DECLARE @a int,@b intSELECT @a=12,@b=21DECLARE @temp intprint cast(@a as varchar(5))+'和'+cast(@b as varchar(5))+'的最大公约数是'if @a<@b --或者是select @temp=@a,@a=@b,@b=@tempb

算数操作符(除法操作符和取模操作符)

目录 / --- 除法操作符 整数除法 代码举例说明 代码验证  浮点数除法 代码举例说明 代码验证 % ---  取模操作符 代码举例说明 代码验证 除法操作符和取模操作符的相关案例 / --- 除法操作符 整数除法 除号的两端都是整数,执行的就是整数除法整数除法的运行规则:只保留商,去掉余数 代码举例说明 int r = 7 / 2;pri

553. Optimal Division 最优除法

https://leetcode-cn.com/problems/optimal-division/description/ 思路:x1/x2/…/xn,无论在之间加多少个括号,x1总是作为被除数,x2总是作为除数,因此结果最大的做法是将x3到xn的所有除法转换为乘法,即x1/(x2/…/xn)=x1/x2*x3*…*xn. string optimalDivision(vector<int>

php没有整数除法

php没有整数除法 如:2/5=0.4 而不是 2/5=0 虽说php底层都是使用C语言实现的,但是真得注意这个坑,尤其一些细节计算时,切记切记!

计算机组成原理之定点除法

文章目录 定点除法运算原码恢复余数法原码不恢复余数法(加减交替法)运算规则 习题 定点除法运算 注意 (1)被除数小于除数的时候,商0 (2)接下来,有一个除数再原来的基础上,不断右移的一个操作,当次数的除数小于余数的时候,就可以商1,并将余数减去除数,得到一个新的余数,否则商0,保留余数不变 问题:机器不能直接判断余数够不够减 原码恢复余数法 原