第2章 运算方法与运算器

第2章 运算方法与运算器

ID:46375954

大小:1.11 MB

页数:86页

时间:2019-11-23

第2章 运算方法与运算器_第1页
第2章 运算方法与运算器_第2页
第2章 运算方法与运算器_第3页
第2章 运算方法与运算器_第4页
第2章 运算方法与运算器_第5页
资源描述:

《第2章 运算方法与运算器》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、定点数的加减运算包括原码、补码和反码3种带符号数的加减运算,其中补码加减运算实现起来最方便。第四节定点加减运算1一、补码加减运算1.补码加法两个补码表示的数相加,符号位参加运算,且两数和的补码等于两数补码之和,即:[X+Y]补=[X]补+[Y]补2证明: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<0,由补码的定义:〔x〕补=2+x,〔y〕补=2+y,〔x〕补+〔y〕补=2+x+2+y=2+(2+x+y)=2+x+y=

2、〔x+y〕补3)设x>0,y<0,〔x〕补=x,〔y〕补=2+y,〔x〕补+〔y〕补=x+2+y此时有两种情况:当x+y≥0时,模丢掉,〔x〕补+〔y〕补=2+x+y=〔x+y〕补当x+y<0时,由补码的定义,可得〔x〕补+〔y〕补=x+2+y=〔x+y〕补4)设x<0,y>0,情况与(3)类似。3根据补码加法公式[X+Y]补=[X]补+[Y]补将Y用-Y代替可推出:[X-Y]补=[X+(-Y)]补=[X]补+[-Y]补另外将X用Y代替可推出:[Y-Y]补=[Y+(-Y)]补=[Y]补+[-Y]补=0-[Y]补=[-Y]补

3、[X-Y]补=[X]补+[-Y]补=[X]补-[Y]补2.补码减法4从补码减法公式可以看出,只要求得[-Y]补,就可以变减法为加法。不管Y的真值为正或为负。已知[Y]补求[-Y]补的方法是:将[Y]补连同符号位一起求反,末尾加“1”。[-Y]补被称为[Y]补的机器负数,由[Y]补求[-Y]补的过程称为对[Y]补变补(求补),表示为[-Y]补=[[Y]补]变补5“某数的补码表示”与“变补”是两个不同的概念。一个负数由原码转换成补码时,符号位是不变的,仅对数值位各位变反,末位加“1”。而变补则不论这个数的真值是正是负,一律连同

4、符号位一起变反,末位加“1”。[Y]补表示的真值如果是正数,则变补后[-Y]补所表示的真值变为负数,反之亦然。例1:Y=-0.0110,[Y]原=1.0110,[Y]补=1.1010,[-Y]补=0.0110例2:Y=0.0110,[Y]原=0.0110,[Y]补=0.0110,[-Y]补=1.10106⑴参加运算的两个操作数均用补码表示;⑵符号位作为数的一部分参加运算;⑶若做加法,则两数直接相加,若做减法,则将被减数与减数的机器负数相加;⑷运算结果仍用补码表示。3.补码加减运算规则7例3:A=0.1011,B=-0.111

5、0,求A+B∵[A]补=0.1011[B]补=1.00100.1011[A]补+1.0010[B]补1.1101[A+B]补∴[A+B]补=1.1101A+B=-0.0011补码加法示例8例4:A=0.1011,B=-0.0010,求A-B∵[A]补=0.1011[B]补=1.1110[-B]补=0.00100.1011[A]补+0.0010[-B]补0.1101[A-B]补∴[A-B]补=0.1101A-B=0.11019二、加减运算的溢出处理1.溢出的产生在补码运算中,若两个正数相加,而结果为负;两个负数相加,而结果为正

6、,则结果出错。例1:设:X=1011B=11D,Y=111B=7D则[X]补=0,1011,[Y]补=0,01110,1011[X]补+0,0111[Y]补1,0010[X+Y]补∴[X+Y]补=1,0010X+Y=-1110B=-14D两正数相加结果为-14D,显然是错误的。10例2:设:X=-1011B=-11D,Y=-111B=-7D则[X]补=1,0101[Y]补=1,10011,0101[X]补+1,1001[Y]补0,1110[X+Y]补∴[X+Y]补=0,1110X+Y=1110B=14D两负数相加结果为14D

7、,显然也是错误的。11字长为n+1位的定点整数(其中一位为符号位),采用补码表示,当运算结果大于2n-1或小于-2n时,就产生溢出。设参加运算的两数为X、Y,做加法运算。若X、Y异号,实际上是做两数相减,所以不会溢出。若X、Y同号,运算结果为正且大于所能表示的最大正数或运算结果为负且小于所能表示的最小负数(绝对值最大的负数)时,产生溢出。将两正数相加产生的溢出称为正溢;反之,两负数相加产生的溢出称为负溢。122.溢出检测方法(1)采用进位位判断两数运算时,产生的进位为Cs,C1C2…Cn,其中:Cs为符号位产生的进位,C1为

8、最高数值位产生的进位。两正数相加,当最高有效位产生进位(C1=1)而符号位不产生进位(Cs=0)时,发生正溢;两负数相加,当最高有效位不产生进位(C1=0)而符号位产生进位(Cs=1)时,发生负溢。故溢出条件为溢出=C1+Cs=Cs⊕C113(2)采用变形补码(双符号位补码)在双符号位的情

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。