普考-資訊處理計算機概要107 年第 16 題單選題
一個負整數以 2's 補數表示法(2's complement)可記為 11000011(資料長度 8 位元)。請問其值與下列那一個十進位整數相等?
B正確答案
計算 2 的補數最快方法是「權重法」,將最高位元視為負權重(-128),其餘位元為正權重相加,即 -128 + 64 + 2 + 1 = -61。
為什麼答案是 B
正確算法:將 11000011 取 1 的補數得 00111100,加 1 得 00111101(即十進位 61),加上負號得 -61;或用權重法 -128 + 64 + 2 + 1 = -61。
載入中…
完整詳解
Pro · 無限重點 計算 2 的補數最快方法是「權重法」,將最高位元視為負權重(-128),其餘位元為正權重相加,即 -128 + 64 + 2 + 1 = -61。
使用權重法秒殺:11000011 的最高位 1 代表 -128,剩下的 1000011 代表 64 + 2 + 1 = 67。兩者相加 -128 + 67 = -61。
逐選項分析
A✕
若在進行「反轉加一」的過程中計算錯誤,例如忘記加一或二進位轉十進位時加法算錯,可能會得出此錯誤數值。
B✓ 正確
正確算法:將 11000011 取 1 的補數得 00111100,加 1 得 00111101(即十進位 61),加上負號得 -61;或用權重法 -128 + 64 + 2 + 1 = -61。
C✕
此為無意義的干擾選項,通常是考生在進行二進位轉十進位時,權重對應錯誤(例如把 2^0 算成 0)所導致的計算失誤。
D✕ 陷阱
經典陷阱!若誤將此題當作「符號與大小 (Sign-Magnitude)」表示法,會把最高位 1 當作負號,後七位 1000011 算成 67,從而得出 -67 的錯誤答案。
常見整數資料表示法比較 (以 8-bit 為例)
| 表示法 | 最高位元意義 | 數值範圍 | 0 的表示方式 |
|---|
| 無號整數 (Unsigned) | 正數權重 (128) | 0 ~ 255 | 僅有 00000000 |
| 符號與大小 (Sign-Magnitude) | 單純符號 (0正1負) | -127 ~ +127 | 有 +0 及 -0 兩種 |
| 1 的補數 (1's Complement) | 符號位元 | -127 ~ +127 | 有 +0 及 -0 兩種 |
| 2 的補數 (2's Complement) | 負權重 (-128) | -128 ~ +127 | 僅有唯一的 0 |
考選部最愛考的陷阱就是讓你把「2的補數」跟「符號與大小」搞混。看到二進位開頭是 1,絕對不能直接把後面的數字算出來然後硬加上負號,必須經過補數轉換或使用負權重計算!