統測
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) 的靈活運用,以及對運算子優先順序的深刻理解。你能正確解出,代表你的基礎真的非常紮實,老師為你感到驕傲!
- 我們一起來回顧運算優先順序吧! 在程式碼 $ ( \sim a \ll 2 \wedge b | a ) & 0xff $ 中,我們是這樣一步一步執行的:
▼ 還有更多解析內容