定点数除法运算
双符号等位二进制定点小数除法

双符号等位二进制定点小数除法
双符号等位二进制定点小数除法是一种计算机数学运算,用于将两个定点小数相除。
它的特点是采用二进制计算,同时考虑了正负数的情况,因此使用了双符号表示法。
在进行双符号等位二进制定点小数除法时,需要先将两个定点小数转换为二进制形式,并补齐小数点后的位数。
接着,根据除数的符号确定商的符号,并将被除数和除数取绝对值进行计算。
在计算过程中,需要先进行整数部分的除法运算,然后再进行小数部分的除法运算。
小数部分的除法运算需要注意在进行除法时的进位和退位操作。
最终,根据商的符号和小数点位置,将计算结果转换为定点小数形式。
在进行结果的舍入时,需要考虑舍入方式和精度的要求。
双符号等位二进制定点小数除法在计算机科学中有广泛的应用,例如在计算机图形学中用于坐标变换和颜色混合等运算。
- 1 -。
定点数除法——精选推荐

定点数除法定点数除法⼀、笔算除法:本质上就是看能不能减去,减不了就上0,右移,减的了就上1⼆、原码恢复余数法:规则:将被除数-除数,结果⼤于0,商1,余数左移⼀位。
结果⼩于0,商0,恢复余数,余数左移⼀位。
重复上述操作,直⾄商的精度满⾜要求为⽌。
本质上来说,不恢复余数法是只是为了在计算的时候能够不判断除数和余数的⼤⼩⽽规定的⼀种算法,每⼀次只需要先减就是了,减完了以后,再通过双符号位判断上商为0还是1,然后再判断是否要恢复余数参考链接:三、原码不恢复余数法:与恢复余数法的区别:若余数(被除数)为负,表⽰不够减,商上0,恢复余数(加上除数),左移⼀位,加上[-y]_补 , 加上[ y ] 补链接同上四、补码除法(补码不恢复余数法):例⼦:(必须满⾜被除数绝对值⼩于除数绝对值)x / y = + 0.1000 / (-0.1010) = ?R = X[补] = 00 1000 B=Y[补] = 110110 -B = 001010 商Q= 00000步骤:初始化:因为余数在每次运算后都要被不断置为被除数,所以初始化r = X【补】第⼀步:当前余数是正数,是双符号位,⽽Y的补码是负号,所以需要上商为0,然后向左移动余数和商各⼀位,因为是补码的双符号位移位,其中,余数最⾼位移动到第⼆符号位,商的最⾼位移动到余数最低位,然后进⾏+B的操作得到 R = 01 0000 + 11 0110 = 1 000110 然后将被除数赋值给余数得到 r = 000110 Q = 00000第⼆步:当前除数和r1异号,因此在Q末尾上0,然后向左移动余数和商各⼀位,其中,余数最⾼位移动到第⼆符号位,商的最⾼位移动到余数最低位,然后进⾏+B的操作得到R = 001100 + 110110 = 1 000010 然后将被除数赋值给余数得到 r = 000010 Q = 00000第三步:同上,商继续上0 ,基本操作同上:得R = 111 010 商 Q = 00000第四步:因为余数和y补同号,所以上商1 ,然后整体左移⼀位,按照之前的规则上位,并且-B(相当于+【-B】补码)得余数 = 111110,商Q = 00010除数的位数只有四位,因此循环完成:第五步:商校正:商的最⾼位+1(取反),最低位置1,最终得到 Q = 10010余数校正:余数在运算过程中左移了四位,因此需要将其缩⼩到原来的 2^(-4), 最终得到r = 2^(-4) * r4。
定点数运算

第三节定点数运算定点数运算包括移位、加、减、乘、除几种。
一、移位运算1.移位的意义移位运算在日常生活中常见。
例如15米可写作1500厘米,单就数字而言,1500相当于小数点左移了两位,并在小数点前面添了两个0;同样15也相当于1500相对于小数点右移了两位,并删去了小数点后面的两个0。
可见,当某个十进制数相对于小数点左移n位时,相当于该数乘以10n;右移n位时,相当于该数除以10n。
计算机中小数点的位置是事先约定的,因此,二进制表示的机器数在相对于小数点作n 位左移或右移时,其实质就便该数乘以或除以2n(n=1,2...n)。
移位运算又叫移位操作,对计算机来说,有很大的实用价值,例如,当计算机没有乘(除)运算线路时,可以采用移位和加法相结合,实现乘(除)运算。
计算机中机器数的字长往往是固定的,当机器数左移n位或右移n位时,必然会使其n 位低位或n位高位出现空位。
那么,对空出的空位应该添补0还是1呢?这与机器数采用有符号数还是无符号数有关,对有符号的移位叫算术移位。
2.算术移位规则对于正数,由于[x]原=[x]补=[x]反=真值,故移位后出现的空位均以0添之。
对于负数,由于原码、补码和反码的表示形式不同,故当机器数移位时,对其空位的添补规则也不同。
下表列出了三种不同码制的机器数(整数或小数均可),分别对应正数或负数,移位后的添补规则。
必须注意的是:不论是正数还是负数,移位后其符号位均不变,这是算术移位的重要特点。
不同码制机器数移位后的空位添补规则码制添补代码正数原码、补码、反码0原码0负数补码左移添0右移添1反码 1由上表可得出如下结论:(1)机器数为正时,不论左移或右移,添补代码均为0。
(2)由于负数的原码其数值部分与真值相同,故在移位时只要使符号位不变,其空位均添0。
(3)由于负数的反码其各位除符号位外与负数的原码正好相反,故移位后所添的代码应与原码相反,即全部添1。
(4)分析任意负数的补码可发现,当对其由低位向高位找到第一个“1”时,在此“1”左边的各位均与对应的反码相同,而在此“1”右边的各位(包括此“1”在内)均与对应的原码相同,即添0;右移时困空位出现在高位,则添补的代码应与反码相同,即添1。
5第五讲定点除法器

20
2 不恢复余数阵列除法器
21
二 定点运算器的组成
1. 2.
3.
4. 5.
基本构成 算术逻辑运算单元 数据缓冲寄存器 通用寄存器 多路寄存器 数据总线
22
1 逻辑运算
逻辑非运算 eg1: x=011001,求逻辑非 逻辑加运算 eg2: x=011001,y=110101,求逻辑加 逻辑乘运算 eg3: x=011001,y=110101,求逻辑乘 逻辑异或运算 eg4: x=011001,y=110101,求逻辑异或
X0X1X2X3Cn Cn+4=G+P Cn
28
74181ALU电路逻辑图
29
74181ALU相关讨论
1.
当M=0时,M对进位信号没有任何影
响。因此M=0时,进行算术操作。
2.
当M=1时,封锁了各位的进位输出,即
C =0,因此各位的运算结果F 仅与Y 和 X 有关,故M=1时,进行逻辑操作。
30
则第n+1步恢复余数,不移位。
16
二 并行除法器
与阵列乘法器相似,阵列除法器也是一种
并行运算部件。
阵列除法器有多种形式,如不恢复余数阵
列除法器、补码阵列除法器等等。
17
1 可控加法/减法(CAS)单元
Si=Ai⊕(Bi⊕P)⊕Ci Ci+1=(Ai+Ci)· (Bi⊕P)+AiCi
18
原码除法实例
11
2 原码不恢复余数法(加减交替法)
算法分析
第二步:2r1-B=r2’<0
第二步:2r1-B=r2’<0 第三步:r2’+B=r2(恢复余数) 第三步:2r2’+B=r3 (不恢复余数) 第四步:2r2-B=r3 2r2-B=2(r2’+B)-B =2r2’+B=r3
第三章运算方法与运算器(定点数除法)

■ 当上述结果小于0时,商上0,恢复余数,然后左移一位,减除数比较,即:
(2Ri-Y)+Y= 2Ri 2*2Ri -Y = 4Ri –Y
■ 若当结果小于0时,商上0,不恢复余数而直接将余数左移一位,加Y:
2(2Ri-Y)+Y = 2*2Ri -2Y + Y = 4Ri –Y
第三章 3.6 定点数除法
1 00.0011
1
00.0110 0.11
+[–Y]补 11.0101
0 11.1011
0
11.0110 0.110
+[Y]补 00.1011
1 00. 0001 0.1101 1
减Y比较
余数 <0 商上零 左移一位 加Y比较 余数>0,商上1 左移一位 减Y比较 余数>0,商上1 左移一位 减Y比较 余数<0 商上零 左移一位 加Y比较
■重复上述过程直到商达到所需要的位数为止。
第三章 3.6 定点数除法
2
原码恢复余数除法
已知 X=0.1001,Y=- 0.1011,用原码一位除法求X/Y
解:[X]原= 0 .1001 [Y]原= 1.1011
[|X|]补=0.1001 [|Y|] 补=0.1011 [-|Y|]补 =1.0101
最后结果: 商Q = (X0 Y0).1101=1.1101 余数 R = 0.0001 * 2 -4
该方法存在的不足: 运算步数不确定
左移一位 减Y比较
1 余数>0,商上1,移商
第三章 3.6 定点数除法
3
原码加/减交替除法运算方法(不恢复余数法)
■ 设某次余数为Ri,将Ri左移一位减除数进行比较并上商,即:
定点除法运算

手算除法的例子:
2
手算除法的例子
q0 q1q2 q3 q4 0. 1 1 0 1 1 0 1 0 0 1 0 1 0 1 0 1 1 0 1 0 0 0 0 0 1 0 1 0 0 0 1 1 0 1 0 0 1 1 1
0.1 1 0 1 R0 R1=R0-2-1q1Y R2=R1-2-1q2Y
14
例:
例:已知[X]补=1.01110101,[Y]补=0.1110,用补码除法 求[X/Y]补 解:[-Y]补=1.0010
15
符号 11 +00 00 00 +11 11 11 +00 00 00 +11 00 00 +11 11
被除数 01110101 1110 01010101 10101011 0010 11001011 10010110 1110 01110110 11101101 0010 00001101 00011011 0010 0011 1011
例:已知被除数X=-0.10001011,除数Y=+0.1110,用 加减交替法求商和余数。 解:商符=10=1
除数的相反数: [-Y]补 =11.0010 补码加减 因为运算过程中有左移,需采用双符号位。
9
|X|=00.10001011, |Y|=00.1110, [-Y]补 =11.0010 符号位 余数 商 操作 00 10001011 初始值:被除数X +[-Y]补 +11 0010ห้องสมุดไป่ตู้11 10101011 0 R<0,商0 11 01010110 +00 1110 00 00110110 1
操作
-|Y| 0 R<0,商0
←1
定点数除法

定点数除法
定点数除法是指使用定点数进行除法计算。
在计算机编程中,定点数指的是任意一个具有固定小数位数的数。
与之相对的是浮点数,浮点数可以有可变的小数位数。
在一些具有计算机控制的系统中,如嵌入式系统,通常使用定点数进行数值计算。
这是因为浮点数的运算速度较慢,而定点数的运算速度较快,因为它们可以通过整数运算来实现。
定点数除法需要考虑小数点的位置,即小数位数。
在除法的过程中,需要将被除数和除数的小数点位置对齐后进行计算。
在计算结果时,需要考虑小数点的位置,并根据小数点的位置进行适当的进位或舍位。
例如,假设有两个定点数A和B,它们的小数位数分别为3和2。
要计算A/B的结果,需要先将B的小数点向右移动一位,即将B乘以10,变为B'。
然后将A和B'的小数点对齐,进行除法运算。
最后将结果的小数点向左移动一位,即将结果除以10,得到最终结果。
在实际应用中,定点数除法常用于控制系统中的数据处理和算法运算,如PID控制器等。
对于需要高精度计算的场合,也可以使用定点数来代替浮点数进行计算,提高计算速度和精度。
- 1 -。
3.3 定点数的除法

理原成组河南科技大学计算机定点数的除法运算3.3定点数的乘法运算明德笃行博学日新◆定点原码一位除法1)原码恢复余数法2)原码不恢复余数法◆定点补码一位除法博学日新明德笃行原码一位除法1. 运算法则假设被除数[X]原=X s X 1X 2……X n-1X n ,除数[Y]原=Y s Y 1Y 2…Y n-1Y n 商[Q]原=Q s Q 1Q 2……Q n ,则有[Q]原= (X s ⊕Y s ).(|X|×|Y|)即商的符号位等于两数符号位的异或,商的数值部分等于两数绝对值相除。
博学日新明德笃行原码一位除法0.1 0 1 10.11010.0 1 1 0 10.0 0 1 1 0 10.0 1 0 0 1 0.0 0 0 1 0 10.0 0 0 0 0 0 00.0 0 0 0 0 1 1 1…商Q S =X S ⊕Y S =0⊕0=0 X/Y=0.1101 …被除数 X(R 0) …部分余数R 1 …部分余数R 2…余数R 40 . 1 1 0 1 0 0 0 0 2-1Y,除数右移1位,减 2-2Y,除数右移1位,减 2-4Y,除数右移2位,减 2-3Y,除数右移1位,不减 0.0 0 0 1 0 1 0 0.0 0 0 0 1 1 0 1 …部分余数R 3商符单独处理 心算上商(比较大小)?? ? 余数不动低位补“0”减右移一位的除数上商位置不固定1)被除数(绝对值)减去除数(绝对值);2)判别余数正负:若为正数,上商1;若为负数,上商0,然后恢复余数+[|Y|]补;3)余数和商共同左移一位。
4)重复上述过程(左移n次,上商n+1次)。
说明:1)计算机内的运算过程仍用补码。
2)在原码一位乘中通常有以下约定:●小数定点除法 |x| < |y|,整数定点除法 |x| > |y| (避免商溢出)被除数不等于 0,除数不能为 0解:[|X|]原=00.1001,[|Y|]原= [|Y|]补=00.1011 ,[-|Y|]补=11.01010 0 . 1 0 0 1 + 1 1 . 0 1 0 1 X 减Y 1 1 . 1 1 1 0 + 0 0 . 1 0 1 0 余数R 0<0,商0 0恢复余数 0 0 . 1 0 0 1 ← 0 1 . 0 0 1 0 + 1 1 . 0 1 0 1 0 0 . 0 1 1 1 ←0 0 . 1 1 1 0 + 1 1 . 0 1 0 10 0 . 0 0 1 1 ←0 0 . 0 1 1 0 + 1 1 . 0 1 0 1R 0’商0移入Q ,R 0’左移 减Y余数R 1>0,商1 0.1商1移入Q ,R 1’左移 减Y余数R 2>0,商1商1移入Q ,R 2’左移 0.1 1减Y[-|Y|]补[|Y|]补[-|Y|]补[-|Y|]补[-|Y|]补0 0 . 1 0 1 0 + 1 1 . 1 0 1 10 0 . 0 1 1 0 ←0 0 . 1 1 0 0 + 0 0 . 1 1 0 0 0 0 . 0 0 0 1 0 0 . 0 0 0 1←余数R 3<0,商0 恢复余数R 3’=2R 2商 0 移入Q ,R 3’左移 减Y余数R 4>0,商1 商 1 移入Q ,R 4不左移0.1 1 00.1 1 0 1[-|Y|]补[|Y|]补[|Q|]原=0.1101 余数[R]原=0.0001Qs=XS ⊕YS=0⊕0=0R=2-4×0.0001博学日新明德笃行原码恢复余数法(1)某一次-Y 的差值为负时,要多一次+Y 恢复余数的操作,降低了执行速度。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
-|Y|
1 1 1 0 0 0 1 1 0 1 0 R<0,商0
11 00011010←1 Nhomakorabea+0 0 1 1 1 0 11 11111010 0 11 11110100
+0 0 1 1 1 0 00 11010100 1
+|Y| R<0,商0
←1
+|Y| R>0,商1
最后一步, 若 余数R<0,还要 加Y恢复余数 7
❖ 原码加减交替法的运算规则可归纳如下:
1)若余数≥0,上商“1”,余数左移一位,减除数;
2)若余数<0,上商“0”,余数左移一位,加除数。
4
❖ 例:已知被除数X=-0.10001011,除数 Y=+0.1110,用加减交替法求商。
❖ 解:
商符=10=1 除数的相反数: [- Y]补 =11.0010
原码加减交余替数法运算电路余数/商
除数
8
4.4.3 阵列除法器
❖ 当P=0,实现X+Y; ❖ 当P=1,实现X+Y,配合Ci
进位实现减法。
❖ 恰好与原码除法相对应:
›上商0,加Y; ›上商1,减Y。
用异或门实现 可控取反: y 0 = y y1=y
10
0 0 y1 x1 y2 x2 y3 x3
2
恢复余数法
❖ 手算中,上商0还是1,实际上是经过比较的。 ❖ 对于机算,余数左移后,先试商1,减去Y,
得到新余数。若够减(余数为正),则商确 定为1;若不够减(余数为负),则商应改为 0,并加上Y以恢复原来的余数。 ❖ 缺点:操作步骤不固定,控制逻辑复杂。
3
加减交替法(不恢复余数法)
❖ 规则:
❖补码加减 ❖因为运算过程中有左移,需采用双符号位。
∴[商]原=1.1001,余数=0.1101×2-4
5
符|X号|=位00.10001余0数11, |Y|=00商.1110, [-Y]补 =操11作.0010
00 10001011 +11 0010
初始值:被除数X +[-Y]补(手算是试商,机算先做一次减)
先减再判断,若不够减(余数为负) ,这一步先不恢复余数,下一 步改成加除数Y。
❖ 推导:
余数左移后,先减:2Ri-1 –Y 若够减,即Ri = 2Ri-1 –Y >0,则上商qi=1。下一步做Ri+1 = 2Ri –Y 若不够减,即Ri = 2Ri-1 –Y <0,上商qi=0。
若恢复余数Ri’ = Ri+Y, 下一步新余数Ri+1 = 2Ri’ –Y = 2(Ri+Y) –Y = 2Ri +Y, 即下一步余数左移,再加Y。
1
0
∑
∑
∑
∑
x4
∑
∑
∑
∑
x5
∑
∑
∑
∑
∑
q0 = 0 q1
q2
q3 r3
r4
∑
x6
∑
∑
r5
r6
11
4.4.2 补码除法运算
补码不恢复余数除法的运算规则: 1.被除数与除数同号,则被除数减去除数;被
除数与除数异号,则被除数加上除数。 2.若所得余数与除数同号,则上商1,余数左移
一位减去除数;若所得余数与除数异号,则 上商0,余数左移一位加上除数。 3.重复第2步,若采用末位恒置1法,则共做n次 (n为除数补码包括符号位的位数)。 4.商的符号位与数值位均在运算中产生。 13
0 0 0 0 0 1 1 0 1 1 ←1 +11 0010
1 1 0 0 1 1 1 0 1 1 1 未位恒置1
∴[商]补=1.0111
R = -0.1101×2-4
❖ 作业
4.12(2)
16
6
❖∴[商]原=1.1001,余数=0.1101×2-4
符号位
被除数(余数) 商
操作
0 0 1 0 0 0 1 0 1 1 0 商的符号位,清0
01 00010110
←1
+1 1 0 0 1 0
-|Y|
0 0 0 0 1 1 0 1 1 0 1 R>0,商1
00 01101101
←1
+1 1 0 0 1 0
手算除法的例子
0.1 1 0 1 1101)1011
0000
R0 --1 0 1 1 0
1101
R1 = 2R0-q1Y
10010 1101
R2 = 2R1-q2Y
01010 0000
R3 = 2R2-q3Y
10100 1101
R4 = 2R3-q4Y
0111
R4 = 0.0111×2-4
中间余数递推公式:Ri+1 = 2Ri – qi+1 Y
例: 例:已知[X]补=1.01110101,[Y]补=0.1110,用补码
除法求[X/Y]补 解:[-Y]补=1.0010
14
符号 被除数
商 操作
1 1 0 1 1 1 0 1 0 1 X,Y异号
+00 1110
+[Y]补
0 0 0 1 0 1 0 1 0 1 1 R1与Y同号,商1
0 0 1 0 1 0 1 0 1 1 ←1
4.4.1 原码除法运算
❖ 符号、数值分别运算。 ❖ 商的符号:Qf = Xf Yf,余数符号:Rf = Xf ❖ 商的数值部分:
|Q| = |X| / |Y| … |R|
❖ 手算除法的例子:
被除数X=-101.011011,10除11数Y=+0.1101 手算(转为整数)
1
q0 q1q2 q3 q4
1 1 1 0 1 0 1 0 1 1 0 R<0,商0 ∵|X|<|Y|,必然 R<0
11 01010110
←1
+00 1110
+Y
这一步+Y也是必然的
0 0 0 0 1 1 0 1 1 0 1 R>0,商1
这两步先减Y、商0,再加Y,都是固定的。可以合并为一步: (X-Y)*2+Y = 2X – 2Y + Y = 2X –Y, 即合并为先左移,再减Y. 第一次商0,是符号。
+11 0010
+[-Y]补
1 1 1 1 0 0 1 0 1 1 0 R2与Y异号,商0
1 1 1 0 0 1 0 1 1 0 ←1
+00 1110
+[Y]补
0 0 0 1 1 1 0 1 1 0 1 R3与Y同号,商1
0 0 1 1 1 0 1 1 0 1 ←1
+11 0010
+[-Y]补
0 0 0 0 0 0 1 1 0 1 1 R3与Y同号,商1