文档详情

进制乘法PPT课件

壹****1
实名认证
店铺
PPT
522KB
约25页
文档ID:591214619
进制乘法PPT课件_第1页
1/25

计算机组成原理第第4讲讲 二进制乘法运算二进制乘法运算要求要求:: 掌握原码一位乘法掌握原码一位乘法 理解补码一位乘法理解补码一位乘法 0 移位操作移位操作 1 定点数一位乘法定点数一位乘法 0 移位操作移位操作逻辑移位:逻辑移位: 逻辑左移时,高位移出,低位添逻辑左移时,高位移出,低位添0;;逻辑右移时,低位移出,高位添逻辑右移时,低位移出,高位添01. 移位类型移位类型算术移位算术移位 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 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 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 左移左移左移左移右移右移右移右移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 数符不变数符不变(单:符号位不变;双:第一符号(单:符号位不变;双:第一符号位不变)。

位不变)左移空位补左移空位补0(第二符号位移至尾数最高位)(第二符号位移至尾数最高位)右移空位补右移空位补1 不同码制机器数算术移位后的不同码制机器数算术移位后的空位添补规则空位添补规则 码码      制制添补代码添补代码正数正数原码、补码、反码原码、补码、反码0 0    负数负数原码原码0 0补码补码左移添左移添0 0右移添右移添1 1反反      码码1 1 不同码制机器数算术移位对于对于正数正数,三种机器数移位后,三种机器数移位后符号位不变符号位不变,如果左,如果左移时最高数位丢移时最高数位丢1 1,结果,结果““出错出错””;如果右移时最;如果右移时最低数位丢低数位丢1 1,影响精度影响精度 对于对于负数负数,三种机器数移位后,三种机器数移位后符号位均不变符号位均不变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补补 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.算法分析算法分析乘法乘法 部分积累加、移位部分积累加、移位例例乘积乘积 P = X × YP = X × Y积符积符 S SP P= S= SX X S SY YX原原Y原原 ((1 1)手算)手算 11011101 1101 1101 0000 0000 1101 1101 上符号:上符号:部分积部分积问题:问题:1 1)加数增多(由乘数位数决定)。

加数增多(由乘数位数决定) 2 2)加数的位数增多(与被乘数、乘)加数的位数增多(与被乘数、乘 数位数有关)数位数有关)改进:将一次相加改为改进:将一次相加改为分步累加分步累加、、移位移位 ((2 2)分步乘法)分步乘法每次将一位乘数所对应的部分积与原部分每次将一位乘数所对应的部分积与原部分积的累加和相加,并移位积的累加和相加,并移位设置寄存器:设置寄存器: 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=1+B+BC Cn n00.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 1 11 12 2))C Cn n=1=1+B+B0 01 1. .0011001100.00.100110011111.1.10 0 0 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+000.00.1001100100.00.01000100111111. .1 14 4))C Cn n=1=1+B+B0 01 1. .0001000100.00.1000100011111111[XY][XY]原原=X=X原原×Y×Y原原 2. .算法流程算法流程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)乘数末位)乘数末位( (Cn)Cn)为判断位,其状态决定为判断位,其状态决定 下步操作;下步操作;((5 5)作)作n n次循环(累加、右移)。

次循环(累加、右移) 习题习题v在进行原码乘法时,乘积的符号位是由被乘在进行原码乘法时,乘积的符号位是由被乘数的符号位和乘数的符号位通过数的符号位和乘数的符号位通过__(8)__运算运算来获得的来获得的8) A..或   或    B..与     与      C..异或  异或   D..分别取反后再进行或分别取反后再进行或C 2 补码一位乘法补码一位乘法 1.1.算法分析算法分析 X X补补 = X= X0 0.X.X1 1X X2 2……X……Xn n((1 1))Y Y为正:为正:Y Y补补 1 1Y Y2 2……Y……Yn n [XY][XY]补补 = X= X补补1 1Y Y2 2……Y……Yn n] ]((2 2))Y Y为负:为负:Y Y补补 1 1Y Y2 2……Y……Yn n [XY][XY]补补 = X= X补补1 1Y Y2 2……Y……Yn n]+[-X]]+[-X]补补((3 3))Y Y符号任意:符号任意: [XY][XY]补补 = X= X补补1 1Y Y2 2……Y……Yn n]+[-X]]+[-X]补补Y Y0 0符号位符号位 校正法校正法v当乘数当乘数y y为正时,可按类似原码乘法的规则进行为正时,可按类似原码乘法的规则进行运算。

运算v当乘数为负时,把乘数的补码当乘数为负时,把乘数的补码[y][y]补补去掉符号位,去掉符号位,看成一个正数与看成一个正数与[x][x]补补相乘,然后加上相乘,然后加上[-x][-x]补补进进行行校正校正›按补码进行运算按补码进行运算v按补码规则移位:右移补按补码规则移位:右移补1 1,第二符号位一起移,第二符号位一起移v““乘数的补码乘数的补码[y][y]补补去掉符号位,当成一个正数与去掉符号位,当成一个正数与[x][x]补补相相乘乘””——y——y仍然是补码仍然是补码›符号位参与运算,自动生成符号位参与运算,自动生成——与原码的不同之处与原码的不同之处›考虑到运算时可能出现绝对值大于考虑到运算时可能出现绝对值大于1 1的情形(但此的情形(但此刻并不是溢出),故部分积和被乘数取双符号位刻并不是溢出),故部分积和被乘数取双符号位 例已知:[x]补,[y]补,求:[x·y]补解:因为乘数y>0,不用校正故乘积故乘积[x·y]补补 部分积乘数说明 00.0000 + 11.01011101初值[z0]补=0Y4=1,+[x]补 11.0101 11.1010+ 00.00001110→1位,得[z1]补,乘数同时→1位Y3=0,加[0]补 11.1010 11.1101 + 11.01010111→1位,得[z2]补, 乘数同时→1位Y2=1,+[x]补 11.0010 11.1001 + 11.01010011→1位,得[z3]补,乘数同时→1位Y1=1,+[x]补 10.1110 11.01110001→1位,得[z4]补注意:符号位参加运算! 例已知:[x]补,[y]补,求:[x·y]补。

解:因为乘数y<0,需要校正[-X]补 故乘积故乘积[x·y]补补 部分积乘数说明 00.0000 + 11.01011101初值[z0]补=0Y4=1,+[x]补 11.0101 11.1010+ 00.00001110→1位,得[z1]补,乘数同时→1位Y3=0,加[0]补 11.1010 11.1101 + 11.01010111→1位,得[z2]补, 乘数同时→1位Y2=1,+[x]补 11.0010 11.1001 + 11.01010011→1位,得[z3]补,乘数同时→1位Y1=1,+[x]补 10.1110 11.0111 + 00.1011 00.00100001→1位,得[z4]补y<0,+[-X]补注意:符号位参加运算! ((4 4)展开为部分积的累加和形式:)展开为部分积的累加和形式:[XY][XY]补补 = X= X补补1 1Y Y2 2……Y……Yn n)+[-X])+[-X]补补Y Y0 0 = X= X补补1 1Y Y2 2……Y……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 2)+……)+……-1 -1 -2-1 -1 -2-(n-1) -n-(n-1) -n +(+(2 Y2 Yn n-2 Y-2 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 -Y+2 (0 -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 -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 )( 0 )( 0 )3.3.运算实例运算实例X=-0.1101,Y=-0.1011,X=-0.1101,Y=-0.1011,求求[XY][XY]补补初值:初值: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 1 1 1 1))1 01 0-B-BC Cn n00.00.1101110100.00.011001101 101012 2))0 10 1+B+B11.11.1001100111.11.11001100111110103 3))1 01 0-B-B00.00.1001100100.00.010001001111111.1.01014 4))0 10 1+B+B11.11.0111011111.11.10111011111111110 0 C Cn+1n+1C Cn nC Cn+1n+15 5))1 01 0-B-B [XY][XY]补补 4 4))0 10 1+B+B11.11.0111011111.11.10111011111111115 5))1 01 0-B-B00.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 : 不修正不修正 。

下载提示
相似文档
正为您匹配相似的精品文档
相关文档