计算机基本运算中,补码运算怎样判断数值是否有溢出

如题所述

二进制补码,表示正负数,具有一定的表示范围。

当运算结果,超出了它所能表示的范围,就会溢出。

如果出现了溢出,这组代码,就不能正确表示结果。

 

八位二进制代码:0000 0000~1111 1111。

也就是十进制数:0~255。

它们如果是补码:0~127,就直接代表零和正数;

       128~255,则以补码代表-128~-1。

八位补码的范围:-128~+127。

 

在 127 上,再加上+1,就超出了范围,必然溢出。

这两个正数相加之后,将会得出128,却是个负数。

 

在 -128 上,再加上-1,也超范围,也会溢出。

这两个负数相加之后,将会得出 127,这是个正数。

 

补码计算出现了溢出,最重要的特征是:符号不正确。

你只要判断符号正确与否,就可以了。

另外,

能够超出范围的算法,一定是:正+正、负+负。

捎带还有:正-负、负-正。

除了这四种算法之外的计算,都不可能溢出。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-05-01
如果是加法,发现负负得正,或者正正得负了,就溢出了,如果两个加数符号相反,则不会溢出
如果是减法,都是转换为加法再用同样的方法判断。
相似回答