問題
次に示す手順は、列の少なくとも一つは 1 であるビット列が与えられたとき、最も右にある 1 を残し、他のビットを全て 0 にするアルゴリズムである。例えば、00101000 が与えられたとき、00001000 が求まる。a に入る論理演算はどれか。 手順1 与えられたビット列 A を符号なしの 2 進数と見なし、A から 1 を引き、結果を B とする。 手順2 A と B の排他的論理和(XOR)を求め、結果を C とする。 手順3 A と C の a を求め、結果を A とする。
選択肢
- 1排他的論理和(XOR)
- 2否定論理積(NAND)
- 3論理積(AND)
- 4論理和(OR)
正解
3. 論理積(AND)
詳しい解説を見る解説を閉じる
解説
A から 1 を引くと、最も右の 1 とその右側の 0 群が反転する。A と B の XOR を取ると、最も右の 1 とそれより右のビットだけが 1 になる列 C が得られる。最後に A と C の論理積(AND)を取ると、元々 1 でありかつ C でも 1 の位置、すなわち最も右の 1 だけが残る。よって「ウ」が正しい。(出典: 平成27年度 春期 基本情報技術者試験 午前 問1)
一問一答
科目A 180問+科目B 60問