基本情報技術者試験 過去問解説
排他的論理和とは?基本情報技術者試験 平成30年度 秋期 午前 問2を解説
基本情報技術者試験 平成30年度 秋期 午前 問2は、排他的論理和に関する理解を問う問題です。検索から入っても、問題文、選択肢、正解、解説、各選択肢がなぜ違うかをこのページだけで確認できます。
問題文
次に示す手順は,列中の少なくとも一つは1であるビット列が与えられたとき,最も右にある1を残し,他のビットを全て0にするアルゴリズムである。例えば,00101000が与えられたとき,00001000が求まる。aに入る論理演算はどれか。 手順1 与えられたビット列Aを符号なしの2進数と見なし,Aから1を引き,結果をBとする。 手順2 AとBの排他的論理和(XOR)を求め,結果をCとする。 手順3 AとCの[a]を求め,結果をAとする。
この問題の出題ポイント
- 排他的論理和の定義だけでなく、問題文中の条件がどの選択肢に当てはまるかを確認する。
- アルゴリズム分野では、用語の目的・主体・責任範囲の違いが選択肢で問われやすい。
- 関連タグ: 数学、数値表現、論理回路。
選択肢
- ア排他的論理和(XOR)
- イ否定論理積(NAND)
- ウ論理積(AND)正解
- エ論理和(OR)
正解
ウ: 論理積(AND)
解説
最も右にある1だけを残し他を0にするには、A から1を引いた B との XOR で生成したマスク C を、A と AND して最下位1ビットだけを残します。よって a に入るのは論理積(AND)でウが正解です。
なぜ他の選択肢が違うのか
ア
XOR は手順2で既に使われており、ここで再度XORを取るとビットの状態が反転して目的の結果になりません。
イ
NAND ではビットが反転して残る結果となり、「最右の1だけ残す」処理にはなりません。
ウ(正解)
AND は2つのビット列で両方が1のビットだけを残す演算で、A AND C により最右の1ビットだけを抽出できます。正解です。
エ
OR では他のビットも残ってしまい、最右の1だけにする処理になりません。
解き方の整理
排他的論理和の問題では、選択肢のキーワードだけで判断せず、問題文が示す条件と正解選択肢の説明が一致しているかを見ます。誤答選択肢は、似た用語を混ぜる、主体を入れ替える、目的や範囲を広げすぎる、という形で作られることが多いため、選択肢別解説まで確認しておくと復習効率が上がります。
関連問題
前後の問題
平成30年度 秋期 午前 の関連する問題
復習を続ける
間違えた問題、苦手タグ、模試履歴を保存して復習する導線を用意しています。広告なしPro、弱点分析、復習リマインダーは段階的に提供予定です。