題組內容
一、有一部 32 位元 CPU 的電腦,其處理器(Processor)具有位址匯流排
(Address Bus)30 條,請回答下列問題:(每小題 5 分,共 30 分)
⑷當此處理器的算術邏輯運算單元(ALU)執行有號數的加法(ADD) 運算時,如何知道發生溢位(Overflow)?
詳解 (共 1 筆)
詳解
當以下狀況發生時,表示溢位發生:
正+正=負
負+負=正
正-負=負
負-正=正
至於溢位發生的原因
是因為現今電腦最常使用2’s補數來表示
而舉例如:
用4bits來儲存計算
-1的2’s補數表示為1111
-5的2’s補數表示為1011
1111+1011=10010共有5bits(10010確實也等於十進位的-6)
但我們只有4bits的空間來儲存計算
因此最左邊的那個1會溢出來 現有空間只儲存到右邊4個bits的資料 即0010 算出十進位為正數2
此時形成了
負+負=正的狀況
代表發生溢位