全心思齐网

什么是补码加减运算溢出?判别溢出有哪几种方法?并我说明工作原理?

1)补码加法运算:

整数:[A]补+[B]补=[A+B]补 (模为2的n+1次方,因为可能会有进位)

小数:[A]补+[B]补=[A+B]补 (模为2,因为A和B都小于1)

(2)补码减法运算:

因为A-B = A+(-B),所以减法可以变通为加法进行计算。

整数:[A-B]补=[A]补+[-B]补 (模为2的n+1次方)

小数:[A-B]补=[A]补+[-B]补 (模为2)

在做补码加减法时,只需将符号位和数值部分一起参加运算,并且将符号位的进位自然丢掉就可以了。但是,当运算结果超出机器字长所能表示的数值范围,这种情况叫做溢出。

(3)判断溢出:

溢出出现的情况:正数+正数,负数+负数,正数-负数,负数-正数 这四种情况,当参加运算的两个数的符号(正负)相同,而结果则与这2个数的符号不同,即为溢出。

计算机中通常将两个参与运算的数的符号位产生的进位与最高有效位(",""."后的那位)产生的进位进行异或操作(无进位即进位为0),异或结果为1,是溢出,异或结果为0,无溢出。

匿名回答于2023-09-14 14:45:30


相关知识问答