算术溢出(arithmetic overflow)或简称为溢出(overflow)指的是:
加法器是中央处理器算术逻辑单元中的核心之一。当长度为n位的两个二进制数经过加减法器运算,得到的长度为n位的结果不是正确值时,我们说发生溢出。
大多数的电脑都可以区别以上两种溢出条件。当加法或减法的结果发生进位,必须考量到当运算的数值与结果都是unsigned numbers(无号数值,即“正数”)类型时,运算的结果就不适合使用这个数值类型。所以,在执行无号数值(正数)的加法或减法之后检查进位旗标是非常有用的作法。“溢出”在运算结果为无号数值时容易发生,可以从有符号的运算数值预计出这类的情形(例如:两个正整数相加产生的结果为一个负数)。所以,在执行2的补码的加法或减法之后检查溢出旗标是非常有用的作法(换言之,有考虑到有号数值)。
有几个控制溢出的方法:
任何数除以零的计算(Divided by zero)“不是”算术溢出的一种。在数学上只能明显算是不明确的定义(Undefined);它计算出来的结果只能当成是“没有”值,而不是非常大的无限数值。