普考-資訊處理計算機概要107 年第 27 題單選題
欲翻轉一 8-bit pattern 前 5 bit,需使用的遮罩(mask)與運算子(operator),下列何者正確?
A00000111;XOR
B11111000;XOR正確答案
C00000111;NOR
D11111000;NOR
B正確答案
翻轉特定 bit 用 XOR,遮罩在要翻轉的位置設 1。翻轉前 5 bit → 遮罩 11111000,運算子 XOR。
為什麼答案是 B
XOR 特性:與 1 做 XOR 會翻轉(0→1、1→0),與 0 做 XOR 保持不變。遮罩 11111000 前 5 bit 為 1,正好翻轉前 5 bit,後 3 bit 保持不變。
載入中…
完整詳解
Pro · 無限重點 翻轉特定 bit 用 XOR,遮罩在要翻轉的位置設 1。翻轉前 5 bit → 遮罩 11111000,運算子 XOR。
口訣:AND 清零、OR 設一、XOR 翻轉。要翻哪裡就在哪裡放 1。
逐選項分析
A✕ 陷阱
遮罩 00000111 的 1 在後 3 bit,會翻轉到「後 3 bit」而非前 5 bit。位元順序搞反了。
B✓ 正確
XOR 特性:與 1 做 XOR 會翻轉(0→1、1→0),與 0 做 XOR 保持不變。遮罩 11111000 前 5 bit 為 1,正好翻轉前 5 bit,後 3 bit 保持不變。
C✕
NOR 不具選擇性翻轉功能,且遮罩位置也錯。NOR 會把所有 bit 一起運算,無法只動前 5 bit。
D✕ 陷阱
遮罩位置雖對,但 NOR 運算會讓結果受全部 bit 影響(x NOR 0 = NOT x、x NOR 1 = 0),無法達成「只翻轉前 5、後 3 不變」的效果。
位元運算遮罩口訣
| 目的 | 運算子 | 遮罩該位放 | 效果 |
|---|
| 清除 bit (設 0) | AND | 0 | x AND 0 = 0 |
| 設定 bit (設 1) | OR | 1 | x OR 1 = 1 |
| 翻轉 bit | XOR | 1 | x XOR 1 = ~x |
| 保持不變 | AND/OR/XOR | 1/0/0 | 不動 |
位元遮罩最容易搞混的就是「前 n bit」到底是指哪邊。在二進位表示法裡,「前」永遠指高位元(MSB 側,寫在左邊),所以前 5 bit 就是左邊 5 個位置要設 1。翻轉操作的核心是 XOR:想翻哪就在遮罩對應位置放 1,因為 1 XOR 任何值都會反轉,0 XOR 任何值保持不變。NOR 跟 OR 都會強制改變數值而非翻轉,AND 只能清除不能翻。記住口訣:XOR 配 1 翻轉,AND 配 0 清除,OR 配 1 設定。