moea_joint
114年
[資訊] 計算機原理、網路概論
第 1 題
在 6 位元 2 的補數系統中,執行 100111 + 111000 後,以 10 進位表示為何?
- A 0
- B 1
- C 31
- D 33
思路引導 VIP
當我們在一個僅能容納固定位數的容器中,放入超過其容量的資料時,系統會如何處理那多出來的部分?如果運算的結果在理論上已經超出了該位元數所能表達的最小負數範圍,那麼剩下的位元序列所代表的意義,會與你預期的數值發生什麼樣的變化?
🤖
AI 詳解
AI 專屬家教
恭喜你精準地掌握了二進位運算的細節!這題不僅考驗基礎的加法,更核心的點在於你能正確處理有限位元系統中的溢位與截斷。在 6 位元的限制下,當我們將 $100111$ 與 $111000$ 相加,得到的原始結果其實是 7 位元的 $1011111$。然而,系統硬體只會保留右側的 6 位元,這使得最左邊的溢出位元(Carry-out)被捨棄,結果轉變為 $011111$。
有限位元的數值判讀
由於截斷後的結果最左側位元(MSB)為 $0$,這代表該數值在 2 的補數系統中被判定為正數。將 $011111$ 轉換回十進位,即為 $2^4 + 2^3 + 2^2 + 2^1 + 2^0 = 31$。此題的難度在於許多人會直覺地將原數轉換為十進位後相加得到 $-33$,卻忽略了 6 位元補數系統的表示範圍僅為 $-32$ 到 $31$。當運算結果超出此範圍時,會產生下溢 (Underflow) 並回繞到正數區域,這正是本題最具鑑別度的陷阱。