补码加减与法运算(计算机组成原理) .ppt

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

* 计算机组成原理 * * 计 算 机 组 成 原 理 * 补码加减法运算 加法规则: 先判符号位,若相同,绝对值相加,结果符号不变; 若不同,则作减法, |大| - |小|,结果符号与|大|相同。 减法规则: 两个原码表示的数相减,首先将减数符号取反,然后将被减数与符号取反后的减数按原码加法进行运算。 补码加减法运算 1.原码加/减法运算 补码加法的公式: [ x ]补+[ y ]补=[ x+y ]补 (mod 2) 在模2意义下,任意两数的补码之和等于该两数之和的补码。 这是补码加法的理论基础。 2.补码加法运算 特点:不需要事先判断符号,符号位与码值位一起参加运算。 符号位相加后若有进位,则舍去该进位数字。 补码加法的特点: (1)符号位要作为数的一部分一起参加运算; (2)在模2的意义下相加,即大于2的进位要丢掉。 其结论也适用于定点整数。 例: x=0.1001, y=0.0101, 求 x+y。 解: [x]补=0.1001, [y]补=0.0101 [x]补   0. 1 0 0 1 + [y]补   0. 0 1 0 1   [x+y ]补  0. 1 1 1 0  所以  x+y=+0.1110 例: x=+0.1011, y=-0.0101, 求 x+y。 所以  x+y=0.0110 解: [x]补=0.1011,  [y]补=1.1011 [x]补   0. 1 0 1 1 +[y]补  1. 1 0 1 1    [x+y]补 1 0. 0 1 1 0 3.补码减法 减法运算要设法化为加法完成。 补码减法运算的公式: [ x-y ]补=[ x ]补-[ y ]补=[ x ]补+[-y ]补 公式证明: 只要证明[–y]补= –[ y]补, 上式即得证。  ∵ [x+y]补=[x]补+[ y]补   (mod 2) 令 y= - x  ∴ [0]补 =[x]补 + [ - x]补  故 [-x]补=-[ x]补 (mod 2)    证明: 例: x=+0.1101, y=+0.0110, 求 x-y。 解:  [x]补=0.1101     [ y]补=0.0110 [ -y]补=1.1010    ∴ x-y=+0.0111 解: [x]补=1.0011 [y]补=1.1010 [-y]补=0.0110 [x]补 1.0 0 1 1 + [-y]补 0.0 1 1 0 [x-y]补 1.1 0 0 1 例: x= -0.1101,y= -0.0110,求x-y=? ∴x -y = 0.0111 [x]补  0.1 1 0 1 +[-y]补     1.1 0 1 0  [x-y]补 1 0.0 1 1 1 溢出及与检测方法 在定点小数机器中,数的表示范围为|x|1。在运算过程中如出现大于1的现象,称为 “溢出”。 机器定点小数表示 上溢 下溢 1.概念 ?解:????? [x]补=0.1011? ?? [y]补=0.1001 ??????????????? ?? [x]补??? 0. 1 0 1 1 ??????????? ?? +?? [y]补??? 0. 1 0 0 1 ???????????? ? ??? [x+y]补??? 1. 0 1 0 0 例:x=+0.1011, y=+0.1001, 求x+y。???? 例:x= -0.1101, y= -0.1011, 求x+y。 解:????? [x]补=1.0011??? [y]补=1.0101 ??????????????? ?? [x]补??? 1. 0 0 1 1 ????????????? +??[y]补??? 1. 0 1 0 1 ?????????????? [x+y]补?? 0. 1 0 0 0 ???? 两个正数相加的结果成为负数,这显然是错误的。?? ????两个负数相加的结果成为正数,这同样是错误的。 发生错误的原因,是因为运算结果超出编码所能表示的数字大小。 两个正数相

文档评论(0)

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

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

1亿VIP精品文档

相关文档