雙符號位判決法

計算機運算溢出檢測機制,採用雙符號位,00表示正號,11表示負號。如果進位將會導致符號位不一致,從而檢測出溢出。結果的符號位為01時,稱為上溢;為10時,稱為下溢。

典型案例

例如設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表示負號,則溢出時兩個符號位就不一致了,從而可以判定發生了溢出。

相關詞條

熱門詞條

聯絡我們