第3章运算方法与运算器答辩.ppt

  1. 1、本文档共294页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第 3 章 运算方法与运算器;本章学习内容;3.1 运算器的设计方法 ;运算器逻辑组织结构设计的层次;3.2 定点补码加减运算;原码加减运算步骤;⑷ 运算结果的处理: ① 加法运算: 无进位,即得到正确结果。 有进位,结果溢出。 ② 减法运算: 有进位,结果为正,即得到正确结果。 无进位,结果为负,需将结果再变一次补, 得到正确结果。 ⑸ 取绝对值大的操作数的符号作为结果的符号,给结果加上符号位。;3.2.1 补码运算的基础;1. 补码加法;以定点小数为例证明式(3-1)的正确性。 证明: 设x,y的取值范围分别为-1≤x<1, -1≤y<1;两数之和x+y的值在正常范围之内,即:-1≤x+y<1。 (1) 设x≥0,y≥0,则x+y≥0 由补码定义: [x]补=x,[y]补=y, 得:[x]补+[y]补=x+y=[x+y]补;(2) 设x≥0,y<0 且 |x|≥|y| 由补码定义 [x]补=x,[y]补=2+y (mod2) 得:[x]补+[y]补=2+x+y ∵|x|≥|y|, ∴x+y≥0,[x+y]补=x+y ∵2+x+y≥2 ∴[x]补+[y]补=x+y (mod2) 即证得 [x]补+[y]补=[x+y]补;(3) 设x≥0,y<0 且|x|<|y| 由补码定义 [x]补=x,[y]补=2+y (mod2) 得:[x]补+[y]补=2+x+y ∵|x|<|y| ∴ x+y <0 [x+y]补=2+x+y=[x]补+[y]补 (mod2);(4)设x<0,y<0 由补码定义: [x]补=2+x,[y]补=2+y (mod2) 得:[x]补+[y]补=2+x+2+y   =2+2+x+y 舍去模2,得 [x]补+[y]补=2+x+y ∵x<0,y<0 , x+y <0 ∴[x+y]补=2+x+y=[x]补+[y]补 当x<0,y≥0时,证明方法与(2)、(3)相同。 到此得证:[x]补+[y]补=[x+y]补;补码减法的基本关系: [x]补-[y]补=[x]补+[-y]补=[x-y]补 (3-2) 即两数补码之差等于两数之差的补码。 式(3-2)中, 如果x,y是定点小数,则Mod=2; 如果x,y是定点整数,则Mod=2n+1,n为定点整数数值部分的位数。 ;以定点小数为例证明式(3-2)的正确性。 根据式(3-1),可知: [x]补+[-y]补=[x+(-y)]补=[x-y]补 ∵[x+y]补=[x]补+[y]补 ∴[x]补+[-y]补=[x-y]补, [x]补-[y]补=[x]补+[-y]补=[x-y]补;证明: ∵[x+y]补=[x]补+[y]补 ∴[y]补=[x+y]补-[x]补 ∵[x-y]补=[x]补+[-y]补 ∴[-y]补=[x-y]补-[x]补 ∵[y]补+[-y]补 =[x+y]补+[x-y]补-[x]补-[x]补 =[x+y+x-y]补-[x]补-[x]补 =[x+x]补-[x]补-[x]补 =[x]补+[x]补-[x]补-[x]补=0 ∴ -[y]补=[-y]补;① 参加运算的各个操作数均以补码表示,运算结果仍以补码表示。 ② 符号位与数值位一样参加运算。 ③ 若求和,则将两补码数直接相加,得到两数之和的补码; 若求差,则将减数变补(由[y]补求[-y]补),然后与被减数相加,得到两数之差的补码。 ④ 补码总是对确定的模而言,若运算结果超过模(有从符号位上产生的进位),则将模自动丢掉。;例3.1 x=+0.1001,y=+0.0101,求x±y=? 解:[x]补=0.1001, [y]补=0.0101, [-y]补=1.1011 [x+y]补=[x]补+[y]补 =0.1001+0.0101=0.1110 x+y=0.1110 ;例3.2 x=-0.0110,y=-0.0011,求x±y=? 解:[x]补=1.1010, [y]补=1.1101, [-y]补=0.0011 [x+y]补=[x]补+[y]补 =1.1010+1.1101=1.0111 x+y=-0.1001 ;例3.3 x=+0.1010,y=+0.1001, 求x+y=? 解:[x]补=0.1010, [y]补=0.1001, [x+y]补=[x]补+[y]补 =0.1010+0.1001 ;例3.4 x=-0.1101,y=-0.1011, 求x+y=? 解:[x]补=1.0011, [y]补=1.0101, [x+y]补=[x]补+[y]补 =1.0011+1.0101;如果两个正数相加,得到结果的符号为负;两个负数相加,得到的结果为正,则运算结果是错误的。 造成错误的原因,是因为运算结果超出了

文档评论(0)

希望之星 + 关注
实名认证
内容提供者

我是一名原创力文库的爱好者!从事自由职业!

1亿VIP精品文档

相关文档