題組內容
第三題: 一個數值在儲存到電腦記憶體內部之前,會先被轉換成二進位系統。一個數值使用定點法(fixed-point)表示儲存成一個整數,另外,以浮點法(floating-point)表示將一個數值儲存成一個實數。請回答下列問題:
(一)一個整數儲存在記憶體中通常是使用定點法表示,其中,2 補數(2’s complement) 是常在計算機科學中用來儲存一個 n 位元記憶體位置的有號(Signed)整數。請問:
1.請說明數值資料使用補數表示法的優點,以及 2 補數比 1 補數(1’s complement) 優異之處。【4 分】
詳解 (共 1 筆)
詳解
數值資料使用補數表示法的優點
補數表示法在計算機科學中具有以下主要優點:
-
簡化減法運算:
- 使用補數表示法,減法可以轉換為加法,簡化了運算過程。例如,使用 2 補數進行減法時,可以將減數取 2 補數並與被減數相加。
-
單一零表示:
- 使用 2 補數表示法,零只有一種表示形式(全零),而 1 補數有兩種表示形式(全零和全一),這有助於減少表示零的混淆,提高數據處理的可靠性。
-
符號位一致性:
- 在補數表示法中,符號位和數值位統一處理,減少了對符號位的特殊處理需求,簡化了硬體設計。
2 補數比 1 補數優異之處
相比 1 補數表示法,2 補數表示法具有以下優勢:
-
消除雙重零表示:
- 在 1 補數表示法中,零有兩種表示(+0 和 -0),這導致了邏輯和算術運算中的混亂。而在 2 補數表示法中,零只有一種表示形式(全零),簡化了數據處理。
-
更簡單的加減法運算:
- 在 2 補數表示法中,加法和減法可以通過相同的硬體實現,這使得硬體設計更加簡單和高效。特別是在進行減法時,只需要對減數取 2 補數後相加即可,而不需要額外處理進位和符號位。
-
自動處理進位:
- 使用 2 補數表示法進行算術運算時,進位和溢出情況會自動得到處理。這是因為最高位的進位會自然捨棄,這對於循環加法和減法尤其有用。
表格形式解釋
| 優點 | 2 補數表示法 | 1 補數表示法 |
|---|---|---|
| 單一零表示 | 是(只有一種零) | 否(有 +0 和 -0) |
| 加減法簡化 | 是(減法轉換為加法) | 否(需特別處理進位) |
| 符號位一致性 | 是(符號位與數值位統一處理) | 否(需單獨處理符號位) |
| 自動處理進位 | 是(最高位進位自然捨棄) | 否(需要額外處理) |
例子說明
1. 2 補數表示法
假設我們使用 4 位元來表示數字:
- +5 的 2 補數表示法:0101
- -5 的 2 補數表示法:先取反(1010),再加 1(1011)
進行減法運算(7 - 5):
- 7 的表示:0111
- -5 的 2 補數表示:1011
相加:0111 + 1011 = 10010,丟棄最高位,結果為 0010,即為 2。
2. 1 補數表示法
假設我們使用 4 位元來表示數字:
- +5 的 1 補數表示法:0101
- -5 的 1 補數表示法:先取反(1010)
進行減法運算(7 - 5):
- 7 的表示:0111
- -5 的 1 補數表示:1010
相加:0111 + 1010 = 10001,丟棄最高位並加上進位,結果為 0010,即為 2,但需要額外處理進位和符號。
總結
2 補數表示法在計算機科學中比 1 補數更為優越,因為它提供了單一的零表示,簡化了加減法運算,並自動處理進位。這使得硬體設計更為簡單和高效,適合現代計算機系統的數據處理需求。