溢出判断逻辑一……操作数符号位
溢出
Fa,Fb—加数,被加数符号位
Fs—运算和符号位
溢出判断逻辑二……产生进位
溢出=Cf⊕C=1
Cf—符号位运算产生的进位
C —最高有效位产生的进位
溢出判断逻辑三……变形补码
单符号位的信息量只能表示两种可能,数为 正或为负,如产生溢出,就会使符号位含义产 生混乱。将符号位扩充到二位,采用变形补码 (或称模4补码),就能通过符号位直接判断 是否溢出。变形补码为:{符号位,原数}
变形补码用00表示正,11表示负。 计算结果符号位为:
00—结果为正,无溢出;
11—结果为负,无溢出;
01—结果为正溢出;
10—结果为负溢出;
溢出=Fs1⊕Fs2
注意:数据在主存中仍为单符号,运算时传送 到运算器时扩充成双符号,运算结束后紧缩成 单符号位存入主存中。
原理
对于有符号数相加,产生溢出的情况只可能是两个正数相加或两个负数相加。
逻辑一表示:两个正数相加得到了负数或两个负数相加得到了正数
逻辑二表示:最高有效位产生进位,若结果位正数,则溢出,若为负数,则不溢出
逻辑三表示:若双符号的两位不同,则无法用符号位表示最高位,无法压缩为单符号位
来自同济大学计算机组成原理课程ppt
本文介绍了三种判断计算机中整数加法运算是否发生溢出的方法:通过操作数的符号位进行判断、利用进位标志判断以及使用变形补码来判断。这三种方法能够有效地帮助我们确定在有符号数相加时是否出现了溢出现象。
1万+





