加法溢出的三种判别法

一、对于结果进位和符号位进位判断溢出的情况分析:
先给出原理:如果符号位进位和尾数位进位相同则不溢出,反之溢出
首先给出前提条件(或者说是定理):
负数+正数一定不会产生溢出;(该定理显然成立)
接下来:分析两个数是负数和正数的情况
(1)对于符号位是1和0时,如果尾数进位为1,则符号位进位为1,;如果尾数进位为0,则符号位进位为0;
(2)如果是同负,那么则有,如果结果的符号位是0(结果错误),溢出;同正的时候也同理
补充说明:如果最高位有进位,则改进位舍去(截断),只保留到最高位
1.同负的时候,符号位一定有进位(此时最高位等于0,不计尾数进位),不管尾数进位是多少,在此情况下,尾数进位将作为最后的结果进位,如果其尾数进位是1,则结果仍为负数,不溢出,反之溢出
2.同正的时候,两个0相加,一定没有溢出,即使有尾数进位,符号位也不会有进位,所以此时尾数进位仍然作为结果的符号位,如果尾数进位为0,结果符号位为0,不溢出;反之溢出

二、对于双符号位判断结果是否溢出,对于双符号位而言,不管是加数(由于减法做的是加负数的操作,所以减法执行的也是加法,也管减数或被减数叫做加数)还是结果都应该保持双符号一致
补充说明:双符号表示用两位来作为其符号位,自然应该相同
那么在这种情况下,如果结果的双符号位不一致,则说明结果有问题(也就是代表着溢出)

三、用两个加数和结果的符号位进行判断
补充说明:该方法的原理为方法一的原理
所以比较简单不再详细说明
结果如下:(其中SA,SB是加数的符号位,Sf是结果的符号位)
在这里插入图片描述

你可能感兴趣的:(计算机组成原理,硬件)