題組內容

一、有一部 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

此時形成了

負+負=正的狀況

代表發生溢位