补码的运算规则与溢出判别

补码的运算规则与溢出判别

ID:38299636

大小:244.81 KB

页数:8页

时间:2019-06-08

补码的运算规则与溢出判别_第1页
补码的运算规则与溢出判别_第2页
补码的运算规则与溢出判别_第3页
补码的运算规则与溢出判别_第4页
补码的运算规则与溢出判别_第5页
资源描述:

《补码的运算规则与溢出判别》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、补码的运算规则与溢出判别1.补码的运算规则补码的运算规则如下:1)[X+Y]补=[X]补+[Y]补该运算规则说明:任何两个数相加,无论其正负号如何,只要对它们各自的补码进行加法运算,就可得到正确的结果,该结果是补码形式。2)[X-Y]补=[X]补+[-Y]补该运算规则说明:任意两个数相减,只要对减数连同“-”号求补,就变成[被减数]补与[-减数]补相加,该结果是补码形式。3)[[X]补]补=[X]原对于运算产生的补码结果,若要转换为原码表示,则正数的结果[X]补=[X]原;负数结果,只要对该补结果再进行一次求补运算

2、,就可得到负数的原码结果。例2:用补码求X+Y。解:若[X]补=00100101,[Y]补=00110011,可得[X+Y]补=[X]补+[Y]补=00100101+00110011=01011000由于符号位为0是正数,所以[X+Y]原=[X+Y]补=01011000则X+Y=(01011000)2=+88例3:用补码求X-Y。解:若[-Y]补=11001101,可得[X-Y]补=[X]补+[-Y]补=00100101+11001101=11110010由于符号位为1是负数,所以[X-Y]原=[[X-Y]补]补=

3、10001110则X-Y=-(00001110)2=-14例4:用补码求Y-X。解:若[-X]补=11011011,可得[Y-X]补=[Y]补+[-X]补=00110011+11011011=100001110(模28自然丢失)则Y-X=(00001110)2=+14例5:用补码求(-X)+(-Y)。解:[(-X)+(-Y)]补=[-X]补+[-Y]补=11011011+11001101=110101000(模28自然丢失)[(-X)+(-Y)]原=[(-X)+(-Y)补]补=11011000则(-X)+(-Y)=

4、-(01011000)2=-88上述运算结果是正确的,但有时在补码运算中可能会出现错误的结果,请看下面例子。例6:设X=+100,Y=+50,用补码运算求X+Y,(-X)+(-Y)。解:[X]补=01100100[Y]补=00110010[-X]补=10011100[-Y]补=11001110[X+Y]补=[X]补+[Y]补=01100100+00110010=10010110[X+Y]原=[[X+Y]补]补=11101010X+Y=-(01101010)2=-106而[-X]补+[-Y]补=10011100+11

5、001110=01101010[[-X]补+[-Y]补]原=(01101010)2=01101010(-X)+(-Y)=+(01101010)=+1062.溢出的判别计算机中判别溢出的方法通常采用双高位判别法。双高位判别法利用符号位(Kn-1位)及最高数值位(Kn-2位)的进位情况来判断是否发生了溢出。为此,需引进两个符号:CS和CP。CS:若符号位发生进位,则CS=1;否则CS=0。CP:若最高数值位发生进位,则CP=1;否则CP=0当两个正数补码相加时,若数值部分之和大于2n-1,则数值部分必有进位CP=1;而

6、符号位却无进位CS=0。这时CSCP的状态为“01”,发生正溢出。当两个负数补码相加时,若数值部分绝对值之和大于2n-1,则数值部分补码之和必小于2n-1,CP=0;而符号位肯定有进位CS=1,这时CSCP的状态为“10”,发生负溢出。当不发生溢出时,CS和CP的状态是相同的,即CSCP的状态为“00”或“11”。例7:01011001(+89)10010010(-110)01101100(+108)10100100(-92)+)011110000(进位)+)100000000(进位)011000101(-59)1

7、00110110(+54)CS=0,CP=1,正溢出CS=1,CP=0,负溢出例8:00110010(+50)11101100(-20)01000110(+70)11100010(-30)+)000001100(进位)+)111000000(进位)001111000(+120)111001110(-50)CS=0,CP=0,无溢出CS=1,CP=1,无溢出例9:01010101(+85)10111100(-68)11011101(-35)00011101(+29)+)110111010(进位)+)001111000

8、(进位)100110010(+50)011011001(-39)CS=1,CP=1,无溢出CS=0,CP=0,无溢出综上所述,对计算机而言,补码的引入使带符号数的运算都按加法处理。如果CS和CP的值相等,则表示运算结果正确,没有溢出,运算结果的正与负由符号位决定(如例8、例9);如果CS和CP的值不等,则表示运算结果不正确,发生了溢出现象(如例7)。在计算机

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

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

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