网站大量收购独家精品文档,联系QQ:2885784924

第6章 计算机的运算方法3.ppt

  1. 1、本文档共58页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章 计算机的运算方法3

第6章 计算机的运算方法 6.3 定 点 运 算 6.3.3 乘法运算(定点) 笔乘算法的分析与改进 原码乘法 原码一位乘运算规则 原码两位乘法 补码乘法 校正法 补码比较法(Booth乘法) 补码两位乘法 例6.17 已知:x=-0.1110,y=-0.1101;求:[x·y]原。 解:[x]原=1.1110,x*=0.1110,x0=1 [y]原=1.1101,y*=0.1101,y0=1 原码一位乘控制流程 (一)恢复余数法 试商:商值的确定是通过比较被除数和除数的绝对值大小,即通过x*-y*实现的:如果余数为正,说明“够减”,商上“1”;如果余数为负,说明“不够减”,商上“0”。 由于不够减而减了,必须将除数加回去,恢复成原来的余数。 机器内只设加法器,故需将x*-y*操作变为[x*]补+[-y*]补的操作。因此,在判断“够减”,“不够减”作减法时,采用的是补码运算。 2. 原码除法 恢复余数法 加减交替法(不恢复余数法) 1.符号位单独运算,并要求x*y* 2.先用被除数加上[-y*] 补,得余数 3.余数为正时,商上1;余数为负时,商上0,加上[y*] 补,恢复余数, 4.余数左移一位,再加上[-y*] 补,得新的余数; 5.重复步骤3、4,直到商的位数与操作数的位数相同时,或余数为0时,停止计算 (6) 原码两位乘和原码一位乘比较 符号位 操作数 移位 移位次数 最多加法次数 x0 y0 x0 y0 绝对值 绝对值的补码 逻辑右移 算术右移 n n n 2 (n为偶数) n 2 +1(n为偶数) 思考 n 为奇数时,原码两位乘 移 ?次 最多加 ?次 原码一位乘 原码两位乘 6.3 当乘数为奇数时,乘数高位前可 只增加一个“0”,此时需作n/2+1次 加法,n/2+1次移位(最后一步移一 位)。 5. 补码乘法 设 被乘数 乘数 [x]补 = x0. x1x2 xn … [y]补 = y0. y1y2 yn … ① 被乘数任意,乘数为正 同原码乘 但 加 和 移位 按 补码规则 运算 乘积的符号自然形成 ② 被乘数任意,乘数为负 乘数[y]补,去掉符号位,操作同 ① 最后 加[–x]补,校正 (1) 补码一位乘运算规则 6.3 以小数为例 ③ Booth 算法 (被乘数、乘数符号任意) 设[x]补 = x0.x1x2 xn [y]补 = y0.y1y2 yn … … [x · y]补 = [x]补( 0.y1 yn ) – [x]补 · y0 … = [x]补(y1 2-1+y22-2+ +yn2-n) – [x]补 · y0 … = [x]补(–y0+y1 2-1+y22-2+ +yn2-n) … = [x]补[–y0+(y1 – y12-1)+(y22-1–y22-2)+ +(yn2-(n-1)–yn2-n)] … = [x]补[(y1–y0)+(y2–y1)2-1+ +(yn–yn-1)2-(n-1)+(0 –yn)2-n)] … y1 2-1 + + … yn 2-n –[x]补= +[–x]补 2-1 = 20 – 2-1 2-2 = 2-1 – 2-2 2-1 2-2 = [x]补[(y1–y0)+(y2–y1)2-1+ +(yn+1–yn)2-n] … 6.3 附加位 yn+1 ④ Booth 算法递推公式 [z0]补= 0 [z1]补= 2-1{(yn+1–yn)[x]补+[z0]补} yn+1 = 0 [zn]补= 2-1{(y2–y1)[x]补+[zn-1]补} … [x · y]补= [zn]补+(y1–y0)[x]补 最后一步不移位 如何实现 yi+1–yi ? 0 0 0 1 1 0 1 1 1 +[x]补 1 +[–x]补 1 1 0 1 -1 0 6.3 yi yi+1 操作 yi+1–yi 例6.23 已知 x = +0.0011 y = – 0.1011 求[x·y]补 解: 0 0 . 0 0 0 0 1 1 . 1 1 0 1 1 1 . 1 1 0 1 0 0 . 0 0 1 1 1 1 . 1 1 0 1 0 0 . 0 0 1 1 1 1 . 1 1 0 1 1 . 0 1 0 1 0 0 0 . 0 0 0 1 1 1 1 . 1 1 0 1 1 1 0 0 . 0 0 0 1 1 1 1 1 1 . 1 1 0 1 1 1 1 1 [x]补 =

文档评论(0)

hhuiws1482 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:5024214302000003

1亿VIP精品文档

相关文档