进制乘法课件

上传人:新** 文档编号:571167584 上传时间:2024-08-09 格式:PPT 页数:25 大小:628.50KB
返回 下载 相关 举报
进制乘法课件_第1页
第1页 / 共25页
进制乘法课件_第2页
第2页 / 共25页
进制乘法课件_第3页
第3页 / 共25页
进制乘法课件_第4页
第4页 / 共25页
进制乘法课件_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《进制乘法课件》由会员分享,可在线阅读,更多相关《进制乘法课件(25页珍藏版)》请在金锄头文库上搜索。

1、计算机组成原理第第4讲讲二进制乘法运算二进制乘法运算要求要求: 掌握原码一位乘法掌握原码一位乘法 理解补码一位乘法理解补码一位乘法 0 移位操作移位操作 1 定点数一位乘法定点数一位乘法0 移位操作移位操作逻辑移位:逻辑移位: 逻辑左移时,高位移出,低位添逻辑左移时,高位移出,低位添0;逻辑右移时,低位移出,高位添逻辑右移时,低位移出,高位添0。1. 移位类型移位类型算术移位算术移位 1 0 0 0 1 1 1 1左移:左移:0 :数码位置变化,数值:数码位置变化,数值变化变化,符号位不变。符号位不变。1 0 0 1 1 1 1 算术左移:算术左移:1 0 0 1 1 1 1 00 1 1 1

2、 1 0 (-15)(-30)无符号数的移位无符号数的移位有符号数的移位有符号数的移位(1)单符号位)单符号位 : 0 01110 1110 (2)双符号位)双符号位:00 1110 00 01112.正数正数原码原码移位规则移位规则(3 3)移位规则)移位规则左移左移右移右移右移右移0 0111 0 0011 左移左移左移左移右移右移右移右移01 1100 00 1110 00 0111 数符不变数符不变(单:符号位不变;双:第一符号(单:符号位不变;双:第一符号位不变)位不变)空位补空位补0(右移时第二符号位移至尾数最高位)(右移时第二符号位移至尾数最高位)(1)单符号位)单符号位 : 1

3、 01011 1010 (2)双符号位)双符号位:10 1100 11 01103.负数负数原码原码移位规则移位规则(3 3)移位规则)移位规则左移左移右移右移右移右移1 0101 1 0010 左移左移右移右移右移右移11 0110 11 0011 数符不变数符不变(单:符号位不变;双:第一符号(单:符号位不变;双:第一符号位不变)。位不变)。空位补空位补0(1)单符号位)单符号位 : 0 01110 1110 (2)双符号位)双符号位:00 1110 00 01114.正数正数补码补码移位规则移位规则(3 3)移位规则)移位规则左移左移右移右移右移右移0 0111 0 0011 左移左移左

4、移左移右移右移右移右移01 1100 00 1110 00 0111 数符不变数符不变(单:符号位不变;双:第一符号(单:符号位不变;双:第一符号位不变)位不变)空位补空位补0(右移时第二符号位移至尾数最高位)(右移时第二符号位移至尾数最高位)(1)单符号位)单符号位 : 1 10111 0110 (2)双符号位)双符号位:10 1100 11 01105.负数负数补码补码移位规则移位规则(3 3)移位规则)移位规则左移左移右移右移右移右移1 1011 1 1101 左移左移右移右移右移右移11 0110 11 1011 数符不变数符不变(单:符号位不变;双:第一符号(单:符号位不变;双:第一

5、符号位不变)。位不变)。左移空位补左移空位补0(第二符号位移至尾数最高位)(第二符号位移至尾数最高位)右移空位补右移空位补1不同码制机器数算术移位后的不同码制机器数算术移位后的空位添补规则空位添补规则 码码 制制添补代码添补代码正数正数原码、补码、反码原码、补码、反码0 0 负数负数原码原码0 0补码补码左移添左移添0 0右移添右移添1 1反反 码码1 1不同码制机器数算术移位对于对于正数正数,三种机器数移位后,三种机器数移位后符号位不变符号位不变,如果左,如果左移时最高数位丢移时最高数位丢1 1,结果,结果“出错出错”;如果右移时最;如果右移时最低数位丢低数位丢1 1,影响精度。,影响精度。

6、 对于对于负数负数,三种机器数移位后,三种机器数移位后符号位均不变符号位均不变。v如果负数的原码左移时,高位丢如果负数的原码左移时,高位丢1 1,结果出错;低,结果出错;低位丢位丢1 1,影响精度。,影响精度。v如果负数的补码左移时,高位丢如果负数的补码左移时,高位丢0 0,结果出错;低,结果出错;低位丢位丢1 1,影响精度。,影响精度。v如果负数的反码左移时,高位丢如果负数的反码左移时,高位丢0 0,结果出错;低,结果出错;低位丢位丢0 0,影响精度。,影响精度。舍入方法舍入方法1. 0 0舍舍1 1入(原码、补码)入(原码、补码)0 00100原原 1 00101原原 1 11011补补

7、2. 末位恒置末位恒置1 1(原码、补码)(原码、补码)0 00100原原 1 11011补补 1 00101原原 0 0010原原 1 0011原原 1 1110补补 0 0011原原 1 0011原原 1 1101补补 1 0011原原 1 1101补补 例例. 保留保留4位尾数:位尾数: 例例. 保留保留4位尾数:位尾数: 1 定点数乘法运算定点数乘法运算1 原码一位乘法原码一位乘法 每次用一位乘数去乘被乘数。每次用一位乘数去乘被乘数。 1.1.算法分析算法分析乘法乘法 部分积累加、移位。部分积累加、移位。例例. 0.11011.10111.1011乘积乘积 P = X YP = X Y

8、积符积符 S SP P= S= SX X S SY YX原原Y原原(1 1)手算)手算 0.11010.1101 0.1011 0.1011 11011101 1101 1101 0000 0000 1101 1101 0.100011110.10001111上符号:上符号:1.100011111.10001111部分积部分积问题:问题:1 1)加数增多(由乘数位数决定)。)加数增多(由乘数位数决定)。 2 2)加数的位数增多(与被乘数、乘)加数的位数增多(与被乘数、乘 数位数有关)。数位数有关)。改进:将一次相加改为改进:将一次相加改为分步累加分步累加、移位移位。(2 2)分步乘法)分步乘法

9、每次将一位乘数所对应的部分积与原部分每次将一位乘数所对应的部分积与原部分积的累加和相加,并移位。积的累加和相加,并移位。设置寄存器:设置寄存器: A A:存放存放部分积累加和、乘积高位部分积累加和、乘积高位 B B:存放存放被乘数被乘数 C C:存放存放乘数、乘积低位乘数、乘积低位 设置初值:设置初值: A = 00.0000A = 00.0000 B = X = 00.1101 B = X = 00.1101 C = Y = .1011 C = Y = .1011 步数步数 条件条件 操作操作 A C A C 00.0000 .10100.0000 .1011 1 1 1)C Cn n=1=

10、1+B+BC Cn n+ 00.1101+ 00.110100.00.11011101 0.11010.1101 0.101 0.1011 1 1101 1101 1101 1101 0000 0000 1101 1101 0.100011110.10001111BC 1101 1101 00.00.011001101 1.10.101 1 0.11010.1101 0.10 0.101 11 12 2)C Cn n=1=1+B+B+ 00.1101+ 00.11010 01 1. .0011001100.00.100110011111.1.10 0 0.11010.1101 0.1 0.10

11、 01111 0.11010.1101 0.1011 0.1011 1101 1101 1101 1101 0000 0000 1101 1101 0.100011110.10001111BC3 3)C Cn n=0=0+0+0+ 00.0000+ 00.000000.00.1001100100.00.01000100111111. .1 14 4)C Cn n=1=1+B+B+ 00.1101+ 00.11010 01 1. .0001000100.00.1000100011111111XYXY原原=X=X原原YY原原 = 1.10001111= 1.10001111 2. .算法流程算法流

12、程0 A0 A、X BX B、Y CY C、0 CR0 CRC Cn n = 1 = 1 ?CR = n CR = n ?1/21/2(A+BA+B) A A,C C1/21/2(A+0A+0) A A,C C CR + 1 CRCR + 1 CRYYNNSX + SY SPSX + SY SP 3.3.运算规则运算规则(1 1)操作数、结果用原码表示;)操作数、结果用原码表示;(2 2)绝对值运算,符号单独处理;)绝对值运算,符号单独处理;(3 3)被乘数)被乘数(B)(B)、累加和累加和(A)(A)取双符号位;取双符号位;(4 4)乘数末位)乘数末位( (CnCn) )为判断位,其状态决定

13、为判断位,其状态决定 下步操作;下步操作;(5 5)作)作n n次循环(累加、右移)。次循环(累加、右移)。习题习题v在进行原码乘法时,乘积的符号位是由被乘在进行原码乘法时,乘积的符号位是由被乘数的符号位和乘数的符号位通过数的符号位和乘数的符号位通过_(8)_运算运算来获得的。来获得的。(8) A或或 B与与 C异或异或 D分别取反后再进行或分别取反后再进行或C2 补码一位乘法补码一位乘法 1.1.算法分析算法分析 X X补补 = X= X0 0.X.X1 1X X2 2X Xn n(1 1)Y Y为正:为正:Y Y补补 = 0.Y= 0.Y1 1Y Y2 2Y Yn n XYXY补补 = X

14、= X补补0.Y0.Y1 1Y Y2 2Y Yn n (2 2)Y Y为负:为负:Y Y补补 = 1.Y= 1.Y1 1Y Y2 2Y Yn n XYXY补补 = X= X补补0.Y0.Y1 1Y Y2 2Y Yn n+-X+-X补补(3 3)Y Y符号任意:符号任意: XYXY补补 = X= X补补0.Y0.Y1 1Y Y2 2Y Yn n+-X+-X补补Y Y0 0符号位符号位校正法校正法v当乘数当乘数y y为正时,可按类似原码乘法的规则进行为正时,可按类似原码乘法的规则进行运算。运算。v当乘数为负时,把乘数的补码当乘数为负时,把乘数的补码yy补补去掉符号位,去掉符号位,看成一个正数与看成

15、一个正数与xx补补相乘,然后加上相乘,然后加上-x-x补补进进行行校正校正。按补码进行运算按补码进行运算v按补码规则移位:右移补按补码规则移位:右移补1 1,第二符号位一起移,第二符号位一起移v“乘数的补码乘数的补码yy补补去掉符号位,当成一个正数与去掉符号位,当成一个正数与xx补补相相乘乘”yy仍然是补码仍然是补码符号位参与运算,自动生成符号位参与运算,自动生成与原码的不同之处与原码的不同之处考虑到运算时可能出现绝对值大于考虑到运算时可能出现绝对值大于1 1的情形(但此的情形(但此刻并不是溢出),故部分积和被乘数取双符号位。刻并不是溢出),故部分积和被乘数取双符号位。例已知:x补=1.010

16、1,y补=0.1101,求:xy补。解:因为乘数y0,不用校正。故乘积故乘积xy补补=1.01110001 部分积乘数说明 00.0000 + 11.01011101初值z0补=0Y4=1,+x补 11.0101 11.1010+ 00.000011101位,得z1补,乘数同时1位Y3=0,加0补 11.1010 11.1101 + 11.010101111位,得z2补, 乘数同时1位Y2=1,+x补 11.0010 11.1001 + 11.010100111位,得z3补,乘数同时1位Y1=1,+x补 10.1110 11.011100011位,得z4补注意:符号位参加运算!例已知:x补=1

17、.0101,y补=1.1101,求:xy补。解:因为乘数y0,需要校正。-X补 =00.1011故乘积故乘积xy补补=0.00100001 部分积乘数说明 00.0000 + 11.01011101初值z0补=0Y4=1,+x补 11.0101 11.1010+ 00.000011101位,得z1补,乘数同时1位Y3=0,加0补 11.1010 11.1101 + 11.010101111位,得z2补, 乘数同时1位Y2=1,+x补 11.0010 11.1001 + 11.010100111位,得z3补,乘数同时1位Y1=1,+x补 10.1110 11.0111 + 00.1011 00.

18、001000011位,得z4补y0,+-X补注意:符号位参加运算!(4 4)展开为部分积的累加和形式:展开为部分积的累加和形式:XYXY补补 = X= X补补(0.Y(0.Y1 1Y Y2 2Y Yn n)+-X)+-X补补Y Y0 0 = X= X补补(0.Y(0.Y1 1Y Y2 2Y Yn n)-X)-X补补Y Y0 0 = X= X补补(-Y(-Y0 0+ +2 Y2 Y1 1+ +2 2 Y Y2 2+2 2 Y Yn n) )-1 -2 -n-1 -2 -n = X= X补补 -Y-Y0 0+(+(Y Y1 1-2 Y-2 Y1 1)+()+(2 2 Y Y2 2-2 Y-2 Y2

19、 2)+)+-1 -1 -1-1 -2 -2-(n-1) -n-(n-1) -n +(+(2 Y2 Yn n-2 -2 Y Yn n) ) = X= X补补 (Y(Y1 1-Y-Y0 0)+2 (Y)+2 (Y2 2-Y-Y1 1)+2 (Y)+2 (Y3 3-Y-Y2 2)+)+-1 -2-1 -2 +2 (0 -+2 (0 -Y Yn n) )-n-n +2 (+2 (0 0 - -Y Yn n) )-n-nY Yn+1n+1 = X= X补补 ( (Y Y1 1-Y-Y0 0)+2 ()+2 (Y Y2 2-Y-Y1 1)+2 ()+2 (Y Y3 3-Y-Y2 2)+)+-1 -2-1

20、 -2 +2 (+2 (0 0 - -Y Yn n) )-n-nY Yn+1n+1比较法:用相邻两位乘数比较的结果决定比较法:用相邻两位乘数比较的结果决定 +X+X补补、-X-X补补或或+0+0。 2.2.比较法比较法算法算法Y Yn n( (高位高位) ) Y Yn+1n+1( (低位低位) ) 操作操作(A(A补补为部分积累加和为部分积累加和) ) 0 00 00 10 11 01 01 11 1 1/2A1/2A补补 1/2(A1/2(A补补+X+X补补) ) 1/2(A 1/2(A补补-X-X补补) ) 1/2A 1/2A补补( 0 )( 0 )( 1 )( 1 )(-1 )(-1 )

21、( 0 )( 0 )3.3.运算实例运算实例X=-0.1101,Y=-0.1011,X=-0.1101,Y=-0.1011,求求XYXY补补。初值:初值:A=00.0000,B=XA=00.0000,B=X补补=11.0011,=11.0011, -B=-X -B=-X补补=00=00.1101,C =Y.1101,C =Y补补=1=1.0101.0101步数步数 条件条件 操作操作 A C A C 00.0000 1.01000.0000 1.0101 1 1 1)1 01 0-B-BC Cn n+ 00.1101+ 00.110100.00.1101110100.00.011001101

22、11.011.0101012 2)0 10 1+B+B+ 11.0011+ 11.001111.11.1001100111.11.1100110011111.01.010103 3)1 01 0-B-B+ 00.1101+ 00.110100.00.1001100100.00.010001001111111.1.01014 4)0 10 1+B+B+ 11.0011+ 11.001111.11.0111011111.11.10111011111111111.01.00 0 C Cn+1n+1C Cn nC Cn+1n+15 5)1 01 0-B-B+ 00.1101+ 00.1101XYXY补

23、补 = 0.10001111= 0.100011114 4)0 10 1+B+B+ 11.0011+ 11.001111.11.0111011111.11.10111011111111111.01.05 5)1 01 0-B-B+ 00.1101+ 00.110100.00.1000100011111111修正修正(1)A(1)A、B B取双符号位,符号参加运算;取双符号位,符号参加运算;(2)C(2)C取单符号位,符号参加移位,以决定最后是否修正取单符号位,符号参加移位,以决定最后是否修正(3)C(3)C末位设置附加位末位设置附加位Cn+1Cn+1,初值为初值为0 0,CnCn+1CnCn+1组成判断位,组成判断位,决定运算操作决定运算操作;(4)(4)作作n n步循环步循环, ,若需作第若需作第n+1n+1步步, ,则不移位则不移位, ,仅修正。仅修正。 4.4.运算规则运算规则1.0 : -B修正修正0.1 : +B修正修正0.0 : 不修正不修正1.1 : 不修正不修正

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号