プログラミングの基礎(擬似言語のトレース)

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 は2進数で 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ビットは異なるので値が変わります。
  • B. 正しい。0100 1011 の上位と下位の4ビットを入れ替えた 1011 0100 = 180 です。
  • C. 8ビットの並びを左右反転した 1101 0010 の値です。
この分野を解く 分野ページへ

関連する計算ツール

プログラミングの基礎(擬似言語のトレース)の参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

プログラミングの基礎(擬似言語のトレース)のほかの問題

  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. 次のプログラムは、配列 next で要素どうしをつないだ連結リストを、要素番号1の要素から順にたどって出力する。配列の要素番号は1から始まる。next の値0はリストの終わりを表す。出力される値の並びはどれか。