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