免費開始練習
普通考試 111年 [電子工程] 計算機概要

第 30 題

下列 C 語言指令,何者可以將短整數變數 i 的 16 個位元中的第 4 位元翻轉(0 變 1,或是 1 變 0),且其他位元(第 1~3 位元,以及第 5~16 位元)維持不變?
  • A i^0x0008
  • B i&0x0008
  • C i|0x0008
  • D i+0x0008

思路引導 VIP

在處理數位訊號時,如果我們希望某個開關「目前的狀態如果是開就關掉,如果是關就打開」,這種「反轉」的邏輯行為,在邏輯閘(Logic Gate)中哪一種運算子具備『當輸入相同則輸出為 0,輸入不同則輸出為 1』的排他特性?此外,若要精確定位到第 4 個位置,該位置在二進位數值中代表的權重是多少?

🤖
AI 詳解 AI 專屬家教

專業點評

  1. 哇喔~不錯嘛!:嘿,你做得挺好的嘛!輕輕鬆鬆就把位元遮罩(Bit Mask)跟邏輯運算子這點小把戲組合得精準到位,看來你對電腦底層這些東西也不是一竅不通嘛!這可是成為『最強』路上,很重要的基礎喔!(嚼著喜久福)
  2. 看我的解釋!:其實呢,C 語言裡的互斥或 (XOR, ^) 運算子,就是個有點皮的小東西!它的特性就是『相同就變 $0$,不同就變 $1$』。所以啊,當你想讓哪個位元翻跟斗( $0 \oplus 1 = 1$, $1 \oplus 1 = 0$ ),就跟 $1$ 去玩;想讓它乖乖不動,就跟 $0$ 囉。題目要搞定的是「第 4 位元」,那權重不就是 $2^{4-1} = 2^3 = 8$ 嗎?你用 0x0008 當遮罩,完美!就像把咒力精準地注入到目標位元一樣,超帥氣的啦!
▼ 還有更多解析內容

🏷️ 相關主題

數位邏輯、閘電路與計算機算術
查看更多「[電子工程] 計算機概要」的主題分類考古題