普考-資訊處理計算機概要104 年第 4 題單選題
以 1 Byte 表示一個整數,以 2 的補數表示負數,則 10 進位的 (−25)10 的二進位值應該為何?
A(0001 1001)2
B(1110 0111)2正確答案
C(1110 0110)2
D(0001 1010)2
B正確答案
求負數的 2 的補數只需三步:先寫出正數二進位,接著全部位元反轉(1的補數),最後再加 1 即可得出答案。
為什麼答案是 B
正確答案。+25 為 0001 1001,反轉得 1110 0110 (1的補數),加 1 後得到 1110 0111 (2的補數)。
載入中…
完整詳解
Pro · 無限重點 求負數的 2 的補數只需三步:先寫出正數二進位,接著全部位元反轉(1的補數),最後再加 1 即可得出答案。
25 = 16+8+1 → 0001 1001。反轉得 1110 0110,再加 1 得 1110 0111,秒殺!
逐選項分析
A✕
這是正數 (+25) 的二進位表示法。題目要求的是負數 (-25) 的 2 的補數,因此不正確。
B✓ 正確
正確答案。+25 為 0001 1001,反轉得 1110 0110 (1的補數),加 1 後得到 1110 0111 (2的補數)。
C✕ 陷阱
這是 -25 的「1 的補數」表示法(僅將 0001 1001 反轉)。考生常忘記最後要「加 1」而誤選此項。
D✕
這是正數 (+26) 的二進位表示法 (16+8+2 = 26),與題目要求的 -25 完全無關。
負數表示法比較 (以 -25 為例,8 bits)
| 表示法 | 轉換規則 | 二進位結果 | 特點 |
|---|
| 原碼 (Sign-Magnitude) | 最高位為符號位(1為負),其餘為數值 | 1001 1001 | 有 +0 和 -0 兩種表示,運算複雜 |
| 1 的補數 (1's Complement) | 正數二進位全部 0變1、1變0 | 1110 0110 | 有 +0 和 -0 兩種表示 |
| 2 的補數 (2's Complement) | 1 的補數加 1 | 1110 0111 | 只有一個 0,適合硬體加法器直接運算減法 |
2 的補數是最多程式語言內建的負數表示法,但考選部最愛設陷阱讓你算到一半就掉進去。關鍵判斷準則:求負數的 2 的補數必須完成三步驟——寫出正數二進位、所有位元反轉(這步叫 1 的補數)、最後加 1。多數考生會在「位元反轉後」就以為完成,直接選那個數值,但那只是中間產物 1 的補數。記住口訣:2 補 = 1 補 + 1,少做最後一步加 1 就會選錯。另外要分清楚 1 的補數跟 2 的補數是兩種不同的負數表示法,不是先後關係而是計算過程,真正答案一定是加完 1 的那個。