课件补码的运算规则与溢出判别.pptVIP

  • 7
  • 0
  • 约2.6千字
  • 约 8页
  • 2018-01-03 发布于湖北
  • 举报
课件补码的运算规则与溢出判别

补码的运算规则与溢出判别 1. 补码的运算规则 补码的运算规则如下: 1)[X+Y]补=[X]补+[Y]补 该运算规则说明:任何两个数相加,无论其正负号如何,只要对它们各自的补码进行加法运算,就可得到正确的结果,该结果是补码形式。 2)[X-Y]补=[X]补+[-Y]补 该运算规则说明:任意两个数相减,只要对减数连同“-”号求补,就变成[被减数]补与[-减数]补相加,该结果是补码形式。 * 3)[[X]补]补=[X]原 对于运算产生的补码结果,若要转换为原码表示,则正数的结果[X]补=[X]原;负数结果,只要对该补结果再进行一次求补运算,就可得到负数的原码结果。 例2: 用补码求X+Y。 解: 若[X]补 [Y]补可得 [X+Y]补=[X]补+[Y]补 00110011由于符号位为0是正数,所以 [X+Y]原=[X+Y]补 则 X+Y=2=+88 * 例3: 用补码求X-Y。 解: 若[-Y]补可得 [X-Y]补=[X]补+[-Y]补 11001101由于符号位为1是负数,所以 [X-Y]原=[[X-Y]补]补则 X-Y=-2=-14 例4: 用补码求Y-X。 解: 若[-X]补可得 [Y-X]补=[Y]补+[-X]补 11011011=100001110 (模28自然丢失) 则 Y-X=2=+14 * 例5: 用补码求(-X)+(-Y)。 解: [(-X)+(-Y)]补=[-X]补+[-Y]补 11001101=110101000 (模28自然丢失) [(-X)+(-Y)]原=[(-X)+(-Y)补]补 则(-X)+(-Y)=-2=-88 上述运算结果是正确的,但有时在补码运算中可能会出现错误的结果,请看下面例子。 例6: 设X=+100,Y=+50,用补码运算求X+Y,(-X)+(-Y)。 解: [X]补Y]补 [-X]补-Y]补[X+Y]补=[X]补+[Y]补00110010? [X+Y]原=[[X+Y]补]补 X+Y=-2=-106 而[-X]补+[-Y]补11001110[[-X]补+[-Y]补]原=2(-X)+(-Y)=+=+106 * 2. 溢出的判别 计算机中判别溢出的方法通常采用双高位判别法。双高位判别法利用符号位(K n-1位)及最高数值位(K n-2位)的进位情况来判断是否发生了溢出。为此,需引进两个符号:CS和CP。 CS:若符号位发生进位,则CS=1;否则CS=0。 CP:若最高数值位发生进位,则CP=1;否则CP=0 当两个正数补码相加时,若数值部分之和大于2n-1,则数值部分必有进位CP=1;而符号位却无进位CS=0。这时CSCP的状态为“01”,发生正溢出。 当两个负数补码相加时,若数值部分绝对值之和大于2n-1,则数值部分补码之和必小于2n-1,CP=0;而符号位肯定有进位CS=1,这时CSCP的状态为“10”,发生负溢出。 当不发生溢出时,CS和CP的状态是相同的,即CSCP的状态为“00”或“11”。 * 例 7: (+89) (-110) (+108) (-92) +)011110000 (进位) +)1(进位) 011000101 (-59) 1(+54) CS=0,CP=1,正溢出 CS=1,CP=0,负溢出 例8: (+50) (-20) (+70)

文档评论(0)

1亿VIP精品文档

相关文档