程式設計基礎(虛擬碼追蹤)
x 與 y 為8位元的無號整數。<< 與 >> 為邏輯移位,空出的位元補0,超出8位元的位元捨棄。∨ 表示逐位元的邏輯或。x 為 75 時,執行下列指派後 y 的值為下列何者?
8位元型: x ← 75, y
y ← (x << 4) ∨ (x >> 4)
- A75
- B180
- C210
查看答案與解析
正確答案:B. 180
75 的二進位為 0100 1011。x << 4 把低4位元移到高位得到 1011 0000 = 176(超出的 0100 被捨棄),x >> 4 把高4位元移到低位得到 0000 0100 = 4。邏輯或為 1011 0100 = 180,也就是高4位元與低4位元互換後的值。若不限制在8位元內而當成 75 × 16 = 1200 處理,結果就會改變。
- A. 這是以為互換後仍不變的值。高4位元與低4位元不同,因此值會改變。
- B. 正確。0100 1011 的高低4位元互換後為 1011 0100 = 180。
- C. 這是把8位元的排列左右反轉後的 1101 0010 的值。