基本情報技術者試験 基本情報技術者試験 平成30年度 秋期 午前 午前 問2: 次に示す手順は,列中の少なくとも一つは1であるビット列が与えられたとき,最も右にある1を残し,他のビットを全て0にするアルゴリズムである。例えば,0010100

基本情報技術者試験 平成30年度 秋期 午前
Q 22 / 80
次に示す手順は,列中の少なくとも一つは1であるビット列が与えられたとき,最も右にある1を残し,他のビットを全て0にするアルゴリズムである。例えば,00101000が与えられたとき,00001000が求まる。aに入る論理演算はどれか。 手順1 与えられたビット列Aを符号なしの2進数と見なし,Aから1を引き,結果をBとする。 手順2 AとBの(XOR)を求め,結果をCとする。 手順3 AとCの[a]を求め,結果をAとする。
この問の正解率:55.02%(1,963件)
この問題の本文・選択肢・正解・解説(展開)

問題本文

次に示す手順は,列中の少なくとも一つは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年度 秋期 午前過去問一覧へ戻る・問2