溢位旗標

溢位旗標（overflow flag）是電腦處理器中，標示是否出現算術溢位的位元，一般會放在狀態暫存器的某個位元。溢位是指此運算的結果無法用二補數配合目前的位元個數儲存。有些處理器會在出現溢位時自動產生例外。

假設，在8位元的暫存器中計算127加127，127+127是254，用二進制表示會是1111 1110，但在二補數下的二進制下，此數為是-2。兩個正數相加，結果是負數，即為溢位（兩個負數相加，結果是正數也是）。此時會設定溢位旗標，表示有此問題，程式可以輸出錯誤，或是用其他方式緩解此影響。若二個同符號的數相加，結果符號位元改變，即為溢位。若是異號的數相加，不會出現溢位。

當二進制數字表示為無號數時，溢位旗標沒有意義，一般會忽略。二補數算術的一個好處是其加法和減法不需區分有號數和無號數。因此，大部份的指令集不會區分有號和無號的運算元，每一個指令都會更新有號數的溢位旗標和無號數的進位旗標，讓後面的指令去處理相關的旗標。

內部來看，溢位旗標是移進和移入符號位元之進位旗標的逻辑异或。

位操作（and、or、xor、not、位元旋轉）沒有針對有號溢位的標示，不同的處理器架構會有不同作法。有些處理器會無條件的清除溢位旗標（因為位元運算的範圍也包括符號位元，清除溢位旗標表示符號位元有效），有些則不會變更溢位旗標，或是視為未定义行为。位元移位和乘法是對溢位有明確的定義，但各處理器不一定都會實施。例如X86指令只定義乘法和一位元位移下的溢位旗標，多位元位移則不定義。
參考資料

Category:計算機算術