程式設計基礎(虛擬碼追蹤)

x 與 y 為8位元的無號整數。<< 與 >> 為邏輯移位,空出的位元補0,超出8位元的位元捨棄。∨ 表示逐位元的邏輯或。x 為 75 時,執行下列指派後 y 的值為下列何者?

8位元型: x ← 75, y
y ← (x << 4) ∨ (x >> 4)
  1. A75
  2. B180
  3. 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 的值。
練習這個領域 前往領域頁面

相關計算工具

程式設計基礎(虛擬碼追蹤)的其他題目

  1. 下列程序 bubble 是將整數型陣列 data 以遞增順序排列的泡沫排序。swap(data, j, k) 是交換 data[j] 與 data[k] 的值的程序,陣列的元素編號從1開始。程式中的【a】應填入下列何者?
  2. ÷ 為除法,代入整數型變數(含引數)時捨去小數部分。下列程式在以遞增順序排好的整數型陣列 data(元素編號從1開始)中,把第一個大於或等於 x 的值的元素編號求到 lo。x 不大於 data 的最後一個元素。程式中的【a】應填入下列何者?
  3. 以元素數為5的整數型陣列 st 與整數型變數 top 表示堆疊。st 的元素一開始全為0,top 從0開始。push(v) 先把 top 加1再執行 st[top] ← v,pop() 回傳 st[top] 的值後把 top 減1(不改變 st 的元素)。執行下列程式後 top 與 st 為下列何者?
  4. 有一個把元素數為4的字串型陣列 q 環狀使用的佇列。head 與 tail 的初值為1,enq(v) 執行 q[tail] ← v 後再執行 tail ← tail mod 4 + 1,deq() 回傳 q[head] 的值後執行 head ← head mod 4 + 1。執行下列程式時,「E」會存放在 q 的哪個元素?
  5. 下列程式從元素編號1的元素開始,依序走訪以陣列 next 連接元素的鏈結串列並輸出。陣列的元素編號從1開始。next 的值0表示串列的結尾。輸出的值的順序為下列何者?