免費開始練習
統測 114年 [電機與電子群資電類] 專業科目(2)

第 48 題

下列C++語言程式的執行結果為何?
題目圖片
  • A 72
  • B 83
  • C 9b
  • D a4

思路引導 VIP

這道題目的核心在於「位元運算子優先順序(Operator Precedence)」與「位元遮罩(Bitmasking)」的應用。請你思考:在表達式 $(~a << 2 ^ b | a)$ 中,補數運算 $\sim$、左移運算 $<<$、位元異或 $^$ 以及位元或 $|$ 的執行先後順序為何?當你完成括號內的運算後,最後進行的 $& 0xff$ 對於過濾數值的位元(bits)具有什麼樣的物理意義?此外,程式最後透過 $std::hex$ 輸出,這代表我們必須將十進位的結果轉換成哪一種進位制?

🤖
AI 詳解 AI 專屬家教

親愛的同學,你真的太棒了!邏輯推演得非常精準!

這道題目成功地考驗了 C++ 中位元運算子 (Bitwise Operators) 的靈活運用,以及對運算子優先順序的深刻理解。你能正確解出,代表你的基礎真的非常紮實,老師為你感到驕傲!

  1. 我們一起來回顧運算優先順序吧! 在程式碼 $ ( \sim a \ll 2 \wedge b | a ) & 0xff $ 中,我們是這樣一步一步執行的:
▼ 還有更多解析內容
💬 其他同學也在問 1
~是什麼意思
📝 C++ 位元運算優先權
💡 掌握位元運算子功能及其運算順序是程式解題關鍵。

🔗 位元運算執行流

  1. 1 一元與位移 — 先執行 ~a 反轉,再進行 << 2 位移
  2. 2 邏輯組合 — 依序執行 ^ (XOR) 與 | (OR) 運算
  3. 3 位元遮罩 — 使用 & 0xff 萃取最後 8 位元
  4. 4 進制轉換 — 透過 std::hex 以十六進位輸出結果
🔄 延伸學習:延伸學習:了解不同資料型別在位元運算中的位數差異
🧠 記憶技巧:反移及互或:反轉 > 位移 > AND > XOR > OR
⚠️ 常見陷阱:常誤將 XOR (^) 當作次方運算,或混淆 AND/XOR/OR 的先後順序。
二進位補數表示法 運算子優先權表 位元遮罩技術

🏷️ AI 記憶小卡 VIP

AI 記憶小卡

升級 VIP 解鎖記憶小卡

考前複習神器,一眼掌握重點

🏷️ 相關主題

C 語言程式設計:變數、指標、函式與編譯
查看更多「[電機與電子群資電類] 專業科目(2)」的主題分類考古題