ch数值的机器运算乘法实用实用教案_第1页
ch数值的机器运算乘法实用实用教案_第2页
ch数值的机器运算乘法实用实用教案_第3页
ch数值的机器运算乘法实用实用教案_第4页
ch数值的机器运算乘法实用实用教案_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1 设n位被乘数和乘数用定点(dn din)小数表示 被乘数 x原xf . xn1 x1x0 乘数 y原yf . yn1 y1y0 则乘积 z原(xf yf)(0. xn1 x1x0)(0. yn1 y1y0) 式中,xf为被乘数符号,yf为乘数符号。 1. 1. 乘法的手工(shugng)(shugng)算法4.4.1原码(yun m)一位乘法第1页/共28页第一页,共29页。2(2) 手工(shugng)运算过程: 设0.1101,0.10110 0. 1 1 0 1 (x) 0. 1 0 1 1 0 (y) 0 0 0 0 1 1 0 1 1 1 0 1 0 0 0 0+ 1 1 0 1

2、0. 1 0 0 0 1 1 1 1 (z) (1) (1)乘积(chngj)(chngj)符号的运算规则:同号相乘为正,异号相乘为负。4.4.1原码(yun m)一位乘法 0. 1 1 0 1 (x) 0. 1 0 1 1 0 (y) 0. 0 0 0 0 0 0 0 0 0. 0 0 0 0 1 1 0 1 0. 0 0 0 1 1 0 1 0. 0 0 0 0 0 0+ 0. 0 1 1 0 1 0. 1 0 0 0 1 1 1 1 (z)第2页/共28页第二页,共29页。3一般而言,设被乘数(chn sh)x,(chn sh)x,乘数(chn sh)y(chn sh)y都是小于1 1的

3、n n位定点正数: x=0.x1x2.xn 1 x=0.x1x2.xn 1 y=0.y1y2.yn 1 y=0.y1y2.yn 1 其乘积(chngj)(chngj)为:xy=x(0.y1y2.yn )xy=x(0.y1y2.yn ) =x(y12-1 +y22-2 + yn2-n ) =x(y12-1 +y22-2 + yn2-n ) = xy12-1+xy22-2 +xyn2-n = xy12-1+xy22-2 +xyn2-n = 2-1(y1x+2-1(y2x+2-1(+2-1(yn-1x+2-1(ynx+0) = 2-1(y1x+2-1(y2x+2-1(+2-1(yn-1x+2-1(y

4、nx+0)4.4.1原码(yun m)一位乘法niiiyx12第3页/共28页第三页,共29页。4形成(xngchng)递推公式 令zizi表示第i i次部分(b fen)(b fen)积,则根据从内到外的原则有: z0 = 0, z0 = 0, z1 = 2-1(ynx+z0) z1 = 2-1(ynx+z0) z2 = 2-1(yn-1x+z1) z2 = 2-1(yn-1x+z1) zi = 2-1(yn-i+1x+zi-1) zi = 2-1(yn-i+1x+zi-1) zn = x zn = xy = 2-1(y1x+ zn-1)y = 2-1(y1x+ zn-1)4.4.1原码(y

5、un m)一位乘法2-1(y1x+2-1(y2x+2-1(+2-1(yn-1x+2-1(ynx+0)优点:1、每次只有两个数相加。2、相加的的位数为n。3、容易确定加数。第4页/共28页第四页,共29页。54.4.1 原码(yun m)一位乘原码一位乘法的规则为: 参加运算的操作数取其绝对值,且用两位符号(fho); 令乘数的最低位为判断位,若为“1”,加被乘数,若为“0”,不加被乘数(加0); 累加后的部分积右移一位; 重复n次和; 符号(fho)位单独处理,同号为正,异号为负。 第5页/共28页第五页,共29页。6 开始 zi = 0, i=0 yn= 1 ? z zi i + 0 z z

6、i i+ x zi , y右移一位,i = i+1 i = n ? 结束yynn4.4.1原码(yun m)一位乘法第6页/共28页第六页,共29页。7部分(b fen)积乘数(chn sh)说明(shumng)最后结果 : x y=0.10001111 0 0.0 0 0 0 yf 1 0 1 1 z0=0 + 0 0.1 1 0 1 y4=1, +x 0 0.1 1 0 1 0 0.0 1 1 0 1 yf 1 0 1 右移,得z1 + 0 0.1 1 0 1 y3=1, +x 0 1.0 0 1 1 0 0.1 0 0 1 1 1 yf 1 0 右移,得z2 + 0 0.0 0 0 0

7、y2=0, +0 0 0.1 0 0 1 0 0.0 1 0 0 1 1 1 yf 1 右移,得z3 + 0 0.1 1 0 1 y1=1, +x 0 1.0 0 0 1 0 0.1 0 0 0 1 1 1 1 yf 右移,得z4=x y例:x=0.1101 , y=0.1011 , 求 x xy y 。4.4.1原码一位乘法尾数尾数第7页/共28页第七页,共29页。8 设x补 = x= x0 0.x.x1 1x x2 2x xn n 当x x 0 0时, , x x0 0=0=0, niiix12x补=0.x=0.x1 1x x2 2x xn n = = x = = xniiix12= -1

8、+ 0.x= -1+ 0.x1 1x x2 2x xn n= -1+= -1+ niiix12x = -xx = -x0 0 + +真值与补码(b m)(b m)的关系: 当x x 0 0时, , x x0 0=1=1, x补=1.x=1.x1 1x x2 2x xn n = 2 + x = 2 + x x=1.x x=1.x1 1x x2 2x xn n-2-2(1)(1)真值和补码(b m)(b m)之间的关系4.4.2 补码(b m)一位乘法第8页/共28页第八页,共29页。9 设被乘数 x x补 = x0.x1x2xn = x0.x1x2xn 乘数 y y补 = y0.y1y2yn =

9、 y0.y1y2yn 均为任意符号,则有补码(b m)(b m)乘法算式: xy 补 = x补 y或: xy 补 = x补 niiiyy102(2) (2) 补码(b m)(b m)乘法规则( (校正法) )原码(yun m)(yun m)乘法:xy=x(y12-1 +y22-2 + yn2-n )xy=x(y12-1 +y22-2 + yn2-n ) = xy12-1+xy22-2 +xyn2-n = xy12-1+xy22-2 +xyn2-n = 2-1(y1x+2-1(y2x+2-1(+2-1(yn-1x+2-1(ynx+0) = 2-1(y1x+2-1(y2x+2-1(+2-1(yn-

10、1x+2-1(ynx+0)与原码乘法运算规则的区别: 1、操作数用补码表示。 2、被乘数的符号位参与运算。 3、乘数的符号位决定最后是否修正,修正不移位。第9页/共28页第九页,共29页。10部分(b fen)积乘数(chn sh)说明(shumng)最后结果 : x y补=1.01110001 0 0.0 0 0 0 yf 0 1 0 1 1 z0=0 + 1 1.0 0 1 1 y4=1, +x 1 1.0 0 1 1 1 1.1 0 0 1 1 yf 01 0 1 右移,得z1 + 1 1.0 0 1 1 y3=1, +x 1 0.1 1 0 0 1 1.0 1 1 0 0 1 yf 0

11、 1 0 右移,得z2 + 0 0.0 0 0 0 y2=0, +0 1 1.0 1 1 0 1 1.1 0 1 1 0 0 1 yf 0 1 右移,得z3 + 1 1.0 0 1 1 y1=1, +x 1 0.1 1 1 0 1 1.0 1 1 1 0 0 0 1 yf 右移,得z4=x y例:x=-0.1101 , y=0.1011 , 求 x xy y 。X补=11.0011,Y补=Y=0.1011第10页/共28页第十页,共29页。11部分(b fen)积乘数(chn sh)说明(shumng) 0 0.0 0 0 0 yf 1 0 1 0 1 z0=0 + 0 0.1 1 0 1 y

12、4=1, +x 0 0.1 1 0 1 0 0.0 1 1 0 1 yf 1 0 1 0 右移,得z1 + 0 0.0 0 0 0 y3=1, +x 0 0.0 1 1 0 0 0.0 0 1 1 0 1 yf 1 0 1 右移,得z2 + 0 0.1 1 0 1 y2=0, +0 0 1.0 0 0 0 0 0.1 0 0 0 0 0 1 yf 1 0 右移,得z3 + 0 0.0 0 0 0 y1=1, +x 0 0.1 0 0 0 0 0.0 1 0 0 0 0 0 1 yf 右移,得z4=x y 1 1.0 0 1 1 y0 1,-x 1 1.0 1 1 1 0 0 0 1 不移位例:

13、x=0.1101 , y=0.1011 , 求 x xy y 。X补=00.1101 Y补=11.0101 -X补=11.0011 最后结果 : x y补=1.01110001第11页/共28页第十一页,共29页。12( yn+1是增加(zngji)的附加位,初值为0 )补补yx )(nnyyyyx 22222110补补)()()()(nnnnyyyyyyyx 22222122121110补补2)0 (2)(2)()() 1(111201nnnnnyyyyyyyx补 niiiiyyx012)(补补Booth算法(sun f)()()(nnnyyyyyyx 22111201补补第12页/共28页

14、第十二页,共29页。13 将上式改为接近于分步运算(yn sun)逻辑实现的递推关系。补z00 补补补x)yy(zznn12112 补补补x)yy(zzininii12112 补补补x)yy(zznn11122 补补补x)yy(zznn 10112 递推公式递推公式(gngsh)补补补补x)yy(zzyxnn011 最后(zuhu)(zuhu)一步不移位第13页/共28页第十三页,共29页。14由此可见: 每次都是在前次部分积的基础(jch)上,由(yi+1-yi ) 决定对x补的操作,然后再右移一位,得到新的部分积;重复进行。yn+1,yn的作用: 开始操作时,补充(bchng)一位yn+1

15、 , 使其初始为0。由yn+1 yn 判断进行什么操作;然后再由ynyn-1 判断第二步进行什么操作 。若 yn yn yn yn1 =1 =1 1 则 yi yi1-yi =1 1-yi =1 做加xx补运算(yn sun)(yn sun);yn nyn n1 1 = = 则 yi1 1- -yi= - - 做加-x-x补运算;yn nyn n1 1 = =1 1yn nyn n1 1= 0= 0则 yi1 1- -yi= 0 zzi i 加0 0,即保持不变第14页/共28页第十四页,共29页。15补码补码BOOTHBOOTH一位乘的运算一位乘的运算(yn sun)(yn sun)规则规则

16、(1) 如果(rgu) yn=yn+1 ,则部分积 zi 加0,再右移一位;(2) 如果 yn yn+1=01 ,则部分(b fen)积 zi 加x补,再右移一位;(3) 如果 yn yn+1=10 ,则部分积 zi 加-x补, 再右移一位; 如此重复n + 1n + 1步,但最后一步不移位。 包括一位符号位,所得乘积为2n+12n+1位,其中n n为尾数位数。(4) 数值用补码表示,被乘数和部分积取两位符号位,乘数取一位符号,符号也参加运算。第15页/共28页第十五页,共29页。16BOOTH法流程图 开始结束zi补+x补zi补zi补+- -x补zi补 z补=0, i=0 yn yn+1=?

17、 zi补不变i=n+1? zi补, y右移一位,i=i+1 011000或11YN第16页/共28页第十六页,共29页。17 0 0.0 0 0 0 1. 0 0 1 1 0 yn+1=0+ 0 0.1 0 1 1 ynyn+1=10, 加-x补 0 0.1 0 1 1 0 0.0 1 0 1 1 1 0 0 1 1 右移一位+ 0 0.0 0 0 0 ynyn+1=11, 加0 0 0.0 1 0 1 0 0.0 0 1 0 1 1 1 0 0 1 右移一位+ 1 1.0 1 0 1 ynyn+1=01, 加x补 1 1.0 1 1 1 1 1.1 0 1 1 1 1 1 1 0 0 右移一

18、位+ 0 0.0 0 0 0 ynyn+1=00, 加0 1 1.1 0 1 1 1 1.1 1 0 1 1 1 1 1 1 0 右移一位+ 0 0.1 0 1 1 ynyn+1=10, 加-x补 0 0.1 0 0 0 1 1 1 1 1 0 最后(zuhu)一位不移位例:x补=1.0101,y补=1.0011, 求xy补=? -x补=0.1011xy补=0.10001111部分(b fen)积乘数(chn sh) yn yn+1说明第17页/共28页第十七页,共29页。18 0 0 0 0 0 0 1 0 1 1 1 0 yn+1=0+ 1 1 0 0 1 1 ynyn+1=10, 1 1

19、 0 0 1 1 1 1 1 0 0 1 1 1 0 1 1 1 右移一位+ 0 0 0 0 0 0 ynyn+1=11 1 1 1 0 0 1 1 1 1 1 0 0 1 1 1 0 1 1 右移一位+ 0 0 0 0 0 0 ynyn+1=11, 加0 1 1 1 1 0 0 1 1 1 1 1 0 0 1 1 1 0 1 右移一位+ 0 0 1 1 0 1 ynyn+1=01, 加x补 0 0 1 0 1 1 0 0 0 1 0 1 1 0 1 1 1 0 右移一位+ 1 1 0 0 1 1 ynyn+1=10, 加-x补 1 1 1 0 0 0 1 0 1 1 1 0 最后(zuhu)

20、一位不移位x补=001101,y补=10111, -x补=110011xy补=110001011部分(b fen)积乘数(chn sh) yn yn+1说明例:x=13, y=-9 求xy=? xy = -0111 0101=-117第18页/共28页第十八页,共29页。19)0(2(2(2(22)(2)(2)(2)()000. 000. 00 . 0. 0(24131211144332211432141yxyxyxyxyxyxyxyxyyyyxyxniniiyi或yi与yi+1组合控制变量,决定每次加法(jif)的加数!移位相加相加移位Z1Z2Z3Z411131412231132104102

21、22220iiniZyxZZyxZZyxZZyxZZyxZZ第19页/共28页第十九页,共29页。20补码一位乘法(chngf)比较 开始 z = 0, i=0 yn= 1 ? z z + 0 z z+ x z , y右移一位,i = i+1 i = n ? 结束yynn 开始结束z补+x补z补z补+- -x补z补 z补=0, i=0 yn yn+1=? z补不变i=n+1? z补, y右移一位,i=i+1 011000或11YN xy 补 = x补 niiiyy102 niiiiyyx012)(补补第20页/共28页第二十页,共29页。214.4 定点乘法(chngf)运算4.4.3 补码两

22、位乘法 为了提高乘法的执行(zhxng)速度,可以选用两位乘法的方案。所谓两位乘法,就是每次处理乘数中的两位,从而使乘法的速度提高了一倍。 根据前面介绍的Booth乘法方便地推导出补码两位乘法,即把补码两位乘理解为将Booth乘法的两次合并为一次来做。 补码两位乘法可以通过Yi-1YiYi+1三位的不同组合来判断原部分积与X补的运算情况,然后右移两位得到新的部分积。第21页/共28页第二十一页,共29页。224.4 定点乘法(chngf)运算)(2 11补补xyyzzii)2(2)()(22)( 2 112111111补补补补补补补xyyyzxyyxyyzxyyzziiiiiiiii第22页/

23、共28页第二十二页,共29页。234.4 定点乘法(chngf)运算补码两位乘法规则如下: 参加运算的数用补码表示; 符号位参加运算; 乘数最低位后增加一位附加位Yn+1,初值为0; 根据乘数的最低三位Yn-1YnYn+1的值决定每次应执行的操作; 移位按补码右移规则进行。 比较(bjio)结果(Yi+1+Yi-2Yi-1)第23页/共28页第二十三页,共29页。244.4 定点乘法(chngf)运算Yn-1YnYn+10 0 0 +0,右移(yu y)2位0 0 1 +X补,右移(yu y)2位0 1 0 +X补,右移(yu y)2位0 1 1 +2X补,右移(yu y)2位1 0 0 +2

24、-X补,右移(yu y)2位1 0 1 +-X补,右移(yu y)2位1 1 0 +-X补,右移(yu y)2位1 1 1 +0,右移(yu y)2位第24页/共28页第二十四页,共29页。254.4 定点乘法(chngf)运算 被乘数和部分(b fen)积取三符号位,当乘数的数值位n 为偶数时,乘数取两符号位,共需作(n/2)+1次累加,n/2次移位(最后一次不移位);当n为奇数时,乘数只需一个符号位,共需(n1)/2次累加和移位,但最后一次仅移一位。第25页/共28页第二十五页,共29页。26 0 0 0 0 0 0 0 1 0 1 0 0 1 0 010,加A补+ 1 1 1 0 0 1 0 1 1 1 0 0 1 0 1 1 1 1 1 0 0 1 0 1 0 1 0 0 算术(sunsh)右移两位+ 0 0 1 1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论