溢出的概念和判断方法

来源:互联网 发布:java 163邮箱发送邮件 编辑:程序博客网 时间:2024/06/03 16:37

当进行加(减)法计算的时候,进(借)位是常见的现象。当出现了补码后,溢出,也是常见的了。

对于有符号数的加减计算,都是用补码进行的,而补码,是用较大的数字代表负数的。

比如:8位二进制数,写成十进制数,就是:0~255。
其中的 0~127,代表零和正数,而128~255,就分别代表了-128~-1。

这样,正数加上正数,产生的和数,如果大于了127,却成为了负数 !

这就是溢出。

溢出,就是计算结果,超出了有符号数的表示范围。


溢出的判断方法有三种:


1.由计算结果来判断

当出现:“正+正=负、负+负=正、正-负=负、负-正=正”的时候,都是产生了溢出。

2.由计算过程中的进位来判断

当出现:最高位的进位(即符号位的进位)和“次高位”的进位 不相同 的时候,就是产生了溢出。

3.由计算后的标志位来判断

当出现:OV = 1 时,就是产生了溢出。

 

针对任何一次加、减运算,都可用这三种方法来判断,结论肯定都是相同的。不信,可以自己试试看。

==========================================================
回答者: 做而论道 | 2011-10-21 14:29
原题网址:http://zhidao.baidu.com/question/331946714.html
提问者对回答的评价:谢谢您的指教
==========================================================

0 0
原创粉丝点击