加减法运算的溢出处理(补码)

当运算结果超出机器数所能表示的范围时,称为溢出。

显然,两个异号数相加或两个同号数相减,结果不会溢出。仅当两个同号数相加或两个异号数相减时,才有可能发生溢出。

一旦溢出,运算结果就不正确了,因此必须将溢出的情况检查出来。

运算

在上例中,1256得出正确结果,34为溢出。

判别溢出的方法:

(1)符号相同的两数相加,如果结果的符号与加数(被加数)不相同,则为溢出。

(2)当任意符号两数相加时,如果数值最高位产生的进位 不等于 符号位的进位,则为溢出。

(3)采用双符号位。正数的双符号位为00,负11。符号位参与运算,当结果的两个符号位不相同时,为溢出。

一般运算时用双符号位,存储时仅保留一个符号位。因为正常情况下,两个符号位保持一致;

而发生溢出情况时,一般要产生出错信号,由CPU执行纠错程序进行处理,情况严重时将停机。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容