数据溢出判断

溢出概念

程序执行过程中,跑的都是数据,因此难免会有数据溢出的现象,那么,
1)数据溢出什么样子呢?
以byte类型为例,1byte有8bit,如果最高位向前有进位,那么就表示数据溢出。
eg:
  1000 0000
+1000 0000
——————
1 0000 0000
我们还知道计算机有个溢出标志位OF,
2)那当数据溢出时,计算机是如何判断溢出,进而修改OF标志位的?
计算机的计算方法:OF=CF与次高位进位的异或值。CF是最高位(符号位)的进位,次高位进位是数据的最高位向符号位的进位。

判断方法

1、无符号数溢出判断
其实很简单,就一句话:

当最高为向更高位有进位(或借位)时产生溢出。

2、有符号数溢出判断
微机原理中的判断有符号数溢出规则:最高位进位状态⊕次高位进位状态=1,则溢出
"⊕"表示异或:相同为0,相异为1
那么上述判断规则翻译白话后为:最高位和次高位,一个有进位一个没有进位,则他们的状态异或值是1,则结果就有溢出。

发布了85 篇原创文章 · 获赞 40 · 访问量 23万+

猜你喜欢

转载自blog.csdn.net/ljb825802164/article/details/89788432
今日推荐