收藏 分享(赏)

4定点数乘除运算及实现.ppt

上传人:无敌 文档编号:375417 上传时间:2018-04-02 格式:PPT 页数:31 大小:869KB
下载 相关 举报
4定点数乘除运算及实现.ppt_第1页
第1页 / 共31页
4定点数乘除运算及实现.ppt_第2页
第2页 / 共31页
4定点数乘除运算及实现.ppt_第3页
第3页 / 共31页
4定点数乘除运算及实现.ppt_第4页
第4页 / 共31页
4定点数乘除运算及实现.ppt_第5页
第5页 / 共31页
点击查看更多>>
资源描述

1、定点乘法运算可采用: 原码进行,又有原 码一位乘法和原码两位乘法。 补码进行,也有补码一位乘法和补码两位乘法 阵列乘法器来实现。,2.3定点乘 除法运算及其实现2.3.1定点乘法运算及其实现, 原码一位乘法 运算规则: 被乘数: X原 f .n110 乘 数: Y原 f .n110 则积: X*Y原 =( X Y ) +( X * Y ) 式中: X为被乘数符号, Y为乘数符号。,1 原码乘法,乘积符号的运算法则是:“异或”(按位加)运算得到。 数值部分的运算方法与普通的十进制小数乘法类似。 下面通过一个具体例子从来说明:,例:设A0.1101,B0.1011,则AB的手工运算过程为:,将多数

2、一次相加,机器难以实现。一般的加法器,只能 把两个输入数相加,多个位积的同时输入是无法实现的,机器字长(即加法器)只有n位,而乘积位数增长了一倍, 即2n,问题:,解决方案: (a) 把一次求和的操作,变成逐步累加求部分积的操作 (b) 将求积过程中左移位积的操作,改为位积不动,而是上次部分积右移的 操作,手工运算过程,计算机内运算的实现方法,例 已知: X0101,Y0 110,用原码一位乘法求X Y 原?,X原1 101,Y原1 110, X Y 原 + (0 101) (0 110),则(0 101) (0 110)的过程为:,0 0 0 0,0,0 0 0 0,0 0 0 0,X,0

3、101,0 101 0,0 0 0 0 0,0 010 10,X,0 101,0 111 10,0 0 11 110,解:用原码一位乘法实现X Y过程为:,所以:X Y 原 0+ 00111100011110,例: 已知X=+01101,Y=-01011,求Z=XY。 解: X原=01101 【Y】原=11011 X Y 原 01+ (01101) (0 1011) 则(01101) (0 1011)的过程为:,所以: X Y 原 Z原=1+0.10001111110001111 Z= 010001111,原码一位乘法的乘法器结构框图如图:所示:,原码一位乘法的乘法器工作原理:乘法开始时,“启

4、动”信号使控制触发器Cx置“1”,于是开启时序脉冲T。 当乘数寄存器R1最末位为“1”时,部分积Zi和被乘数X在加法器中相加, 其结果输出至R0的输入端。一旦打入控制脉冲T到来,控制信号LDR0使部分积右移一位,与此同时,R1也在控制信号LDR1作用下右移一位,且计数器i计数一次。当计数器i=n时,计数器的溢出信号使触发器Cx置“0”,关闭时序脉冲T, 乘法宣告结束。,原码两位乘法:基本原理类似:只是从最低位开始,每次 取两位乘数与被乘数相乘,得到一次部分 积,与上次部分积相加后右移2。有关原 码两位乘法具体操作过程不再 详细讨论,补码乘法 补码一位乘法, 补码与真值的关系:,证明:,当 Y

5、0时, Y 0=0,则真值Y (0) 0Y1 Y2 Yn,当 Y 0时, Y 0=1,依补码的定义:,例 已知: N补 1 1101,N补10011,求N补,N补具有 的数值,N补 1 1101 具有的数值为:,解:,N120121122023124,N补10011 具有的数值为:,N124023022121120(13)10, (0.1875)10,由补码与真值转换公式真值:,Y=(0 ),= -Y0*20 + Y1*2-1 + Y2*2-2 + + Y n*2-n,= -Y0*20 + (Y1*20-Y1*2-1) + (Y2*2-1 -Y2*2-2) + +,= (Y1-Y0)*20,+

6、 + (Yn+1-Yn)*2-n,+ (Y2-Y1)*2-1,在最后1位后再补1位,=,例 已知: N补 0 . 1101,N补1 . 0011, 求N补,N补具有 的数值。,解: N补0 . 1101 具有的数值为: N(10)2-0(1-1)2-1(0-1)2-2(1-0)2-3 (0-1)2-4 13/16 N补 1.0011 具有的数值为 N(01)2-0(0-0)2-1(1-0)2-2(1-1)2-3 (0-1)2-4 13/16, 补码乘法公式:,X Y补 = X补 Y补,= X补Y,证明过程:,略,由补码乘法公式及补码与真值的关系得:,X Y补 =,X补Y,=,X补,【(Y1Y0

7、)20(Y2-Y1)2 -1 (Yn+1Yn) 2-n】,=,X补,上式中Yn+1Yn 只有4中情况:,00 001 110 1 11 0,下面通过例子来熟悉补码一位乘法的操作过程:,+ 0+ - X补+ X补+ 0,例 已知: X0101,Y0 110,用补码一位乘法求(X Y)补,解:用补码实现X Y过程为: ,X补1 011,Y补1 010, Y补 1 0100,则用补码一位乘法的过程为:,0 000,0,0 000,0 000,X补,0 101,0 101 0,0 000 0,0 010 10,X补,1 011,1 101 10,1 1 10 110,X补0 101,X补,0 101,

8、0 0 11 1 1 0,X Y 补 0. 011110,所以:,实现补码一位乘法的乘法器的逻辑框图如图所示,补码两位乘法:是把补码的一位乘法的两个单步操作和并成一个操作。 即:,【 (Z i+2)补】=,2-2 【 Z i补】+ (Yn+1 +Yn2Y n1) 】 【X 】补,3 阵列乘法器,例:44位不带符号的阵列乘法器逻辑图:,2.3.2 定点除法运算及其实现 除法运算可采用: 原码进行,又有恢复余数法和不恢复余数法 补码进行,采用加减交替法 阵列除法器 1. 原码除法运算:是指用原码表示两数相除,求出原码表示的商 运算规则:设有n位定点小数(定点整数也同样适用): 被除数:原f .n1

9、10 除数:原f .n110 则有商q其原码为: q原(ff)+(0.n110/0.n110),原码除法中据对余数的处理不同,又可分为:恢复余数法和加减交替法,例:X=0.1001,Y=0.1101,手算X/Y的过程为:,恢复余数法的计算过程和手算相似:, 原码恢复余数法,解:符号位为:,1,数码的手算过程为:,最后:,余数:R0.000124,商:Q0.1011,(1) 每次都是由心算来比较余数和除数的大小,余数大时,商1; 余数小时,商0。第一次比较时,余数就是被除数。(2) 每做一次减法,总是保持余数不动,而除数向右移一位。(3)最后据符号位运算的结果给商以正确的符号,对上述手算计算过程

10、分析得:,为适应机器运算,需要进行改进: (1)用减法来比较余数和除数的大小 (2) 除数右移改为余数左移。 (3)定点除法运算必须要求被除数的高n位小于除数,否则益处,下面就通过例子讲一下原码恢复余数法的在计算机的操作过程:,例:X=0.1001,Y=0.1101,用原码恢复余数法求X/Y?,解:, 0.1001/ 0.1101用原码恢复余数的过程为:,/y原,011,(ff)+ | x| / | y|,符号:QS,| x| 补,| Y| 补,| Y| 补,0.1001,0.1101,1.0011,余数0,商1即q3=1,所以0.1001/ 0.1101用原码恢复余数的过程为:,0. 1 0

11、 0 1, y ,+| y| 补,1. 0 0 1 1,1. 1 1 0 0,余数0,商1即q1=1,左移1位,0. 1 0 1 0,- | Y|,+| y| 补,1. 0 0 1 1,1. 1 1 0 1,余数0,商1即q4=1,所以:商:Q0.1011, 余数:R0.000124,用原码恢复余数法:求| X | / | Y |的解题步骤: y*= Y先将被除数/余数减去除数得新余数Ri 若Ri0:商“1”,再将Ri左移一位后减除数(即 2Riy*),得新余数Ri 若Ri0:商“0”,先将Riy*,即完成恢复余数的运算,再对Ri y*左 移 一 位后减除数,即2(Ri y*)- y* ,得新

12、的余数Ri 再将上述过程重复n(除数位数)次,共上n位商 最后所得的商和余数即为| X | / | Y | 的商及余数,分析原码恢复余数法得知:当余数 Ri0时,商“1”,再对Ri左移一位后减除数,即2Riy*当余数 Ri0时,商“ 0”,先将Ri+y*,再2(Ri+y*)- y*,也即2Ri+y*。,原码恢复余数法可归纳为:当余数Ri0时,商“1”,做2Riy*运算当余数 Ri0时,商“ 0”,做2(Ri +y*) -y*运算,用原码加减交替法:求| X | / | Y |的解题步骤: 先将余数减去除数得新余数Ri 若Ri0:商“1”,做2Riy*运算 若Ri0:商“0”, 做2Ri+y*运

13、算 再将上述过程重复n(除数位数)次,共上n位商 最后所得的商和余数即为| X | / | Y | 的商及余数, 原码不恢复余数法(加减交替法),原码加减法可归纳为:当余数Ri0时,商“1”,做2Riy*运算当余数 Ri0时,商“ 0”,做2Ri +y*运算,例: 已知: X0101,Y0 110求:【x/y】原?用不恢复余数法解。,X /Y 原 0+ (0 101) (0 110),X 原 1101,Y 原 0 110,-Y 补 1 10,则(0 101) (0 110)的原码不恢复余数法的过程为:, 11, Y ,1 0 1 0,1 1 1 1,余数0,商1即q1=1,0 1 0 0, Y

14、 ,1 0 1 0,1 1 1 0,余数0,商1即q2=1,1 1 0 0, Y ,0 1 1 0,0 0 1 0,余数0,商0即q3=0, x/y原 余数为: 0. 0102-3, 1 1,解:,例: 已知: x0.1011,y0 .1101 ,求【x/y】原?用恢复余数及加减交替法解。,解:,| x | 0 1011 | y |0 1101,(1) 恢复余数法解0 1011 /0 1101的过程为:,【x/y】原,00 + | x | / | y |,| y| 补,1 0011,故 【x/y】原=0.1101 余数为:0.01112-,故:x/y原=0.1101 余数为: 0. 01112

15、- ,(2)不恢复余数法解0 1011 /0 1101的过程为:,补码除法:指“符号位和数码位一起参加除法运算,参加运算的操作数 是补码,求得的商数和余数也是补码。补码除法运算方法:采用加减交替法。补码除法加减交替法的操作过程:,2.补码除法运算, 重复第步次 第次上商后,不再移位及,操作。 若商为负数,则在商末尾加 若余数与被除数异号,则要纠余: 若,同号,用纠余, 若,异号,用纠余,, 若X,Y同号,做-得余数,商为商的符号位,再做+得,若X,Y异号,做+得余数,商为商的符号位,再做-得, 若余数与同号,商,后做。 若余数与异号,商,后做。,【】补,【】补,【】补/【】补的过程为:,Y,N

16、,X,Y同号?,Y,商“1”再作,得,商“”再作,同号?,商“”再作,商“”再作,例: 已知: X0.10 ,Y+0.110, 求【 XY 】补? 解:X 补 01 补0 110 Y 补 1 010 运算过程如下:,1. 0 1 1,0. 1 1 0,0. 0 0 1,X,Y异号,符号位q0=,0. 0 1 0,1. 0 1 0,1. 1 0 0,余数与Y异号,商即q1=,1. 0 0 0,0. 1 1 0,1. 1 1 0,余数与Y异号,商即q2=,1. 1 0 0,0. 1 1 0,0. 0 1 0,余数与Y同号,商1即q3=1,余数0.010与异号,应纠余,又因为,异号用纠余即: 0.0

17、10 Y 补 0.010+1 010 1.100又因为商0,应在末尾,故商为:1.010 所以 【 XY 】补 其 【余数 】补 2-3 ,对补码加减交替法说明如下: 不能自动判溢出,因此在补码除法运算之前,必须 先比较被除数高瑞n位与除数的绝对值,确认不会产 生除法溢出后,才可开始除法运算。 符号位不需要单独运算,可自然得到商数和余数的 正确符号。 若最后一次余数与被除数异号,则需要纠余:X、 Y 同号,则十Y纠余,X、Y异号,则一Y纠余。,下图示出了4位除4位的不恢复余数阵列除法器的逻辑原理图:,被除数0.123456 (双倍长)除数0.123商数0.q1q2q3余数0.00r3r4r5r6,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报