典型案例
例如設X = + 1000001,Y = + 1000011,採用雙符號位表示X=00 1000001,Y=00 1000011,[X + Y]補=01 0000100,實際上,運算結果產生了正溢出。
設x=0.1101,y=-0.0111,符號位為雙符號位 ,用補碼求x+y,x-y
[x]補+[y]補=00 1101+11 1001=00 0110
[x-y]補=[x]補+[-y]補=00 1101+00 0111=01 0100 結果錯誤,正溢出
在確定了運算的字長和數據的表示方法後,數據的範圍也就確定了。一旦運算結果超出所能表示的數據範圍,就會發生溢出。發生溢出時,運算結果肯定是錯誤的。當兩個同符號的數相加(或者是相異符號數相減)時,運算結果有可能產生溢出。常用的溢出檢測機制主要有進位判決法和雙符號位判決法。雙符號位判決法若採用兩位表示符號,即00表示正號、11表示負號,則溢出時兩個符號位就不一致了,從而可以判定發生了溢出。