メインコンテンツへスキップ
基本情報技術者2015年度 春期午前問 1

2015年度 春期 基本情報技術者 午前 問1

難度標準

次に示す手順は、列中の少なくとも一つは1であるビット列が与えられたとき、最も右にある 1 を残し、他のビットを全て0にするアルゴリズムである。例えば、00101000が与えられたとき,00001000が求まる。aに入る論理演算はどれか。

手順1 与えられたビット列Aを符号なしの2進数と見なし、Aから1を引き、結果をBとする。

手順2 AとBの排他的論理和 (XOR)を求め、結果をCとする。

手順3 AとCの a を求め、結果をAとする。

選択肢

解説

結論 → 詳細 → 補足 の 3 層構成

展開
結論Layer 1

正解はウの論理積(AND)です。

詳細Layer 2
展開

このアルゴリズムは、与えられたビット列Aから最も右にある1だけを残すものです。まず、Aから1を引いたBは、最も右にある1とその右側の0が反転した値になります。例えばAが00101000ならBは00100111です。次に、AとBの排他的論理和(XOR)をとることで、最も右の1とその右側のビットが1になり、それより左のビットは全て0になります。A=00101000, B=00100111なのでC=A XOR B=00001111となります。最後に、AとCの論理積(AND)をとることで、Cの1の部分だけがAから取り出され、最も右の1だけが残ります。A=00101000, C=00001111なのでA AND C=00001000となり、目的の結果が得られます。排他的論理和(XOR)は異なるビットで1、同じビットで0を返します。論理積(AND)は両方のビットが1の場合のみ1を返します。否定論理積(NAND)は論理積の否定です。論理和(OR)はどちらかのビットが1なら1を返します。

この解説は?
AI生成

解説は公式の問題文・公式解答を基に作成しています。 事実誤認・選択肢の取り違え・最新法令の反映漏れ等を含む可能性があるため、 重要な判断は必ずリンク先の公式資料でご確認ください。

最終更新:

検証プロセス・誤り報告フローは 運営透明性レポートで公開しています。

分野「アルゴリズムとプログラミング」の学習ポイント

この問題の理解を「分野全体の力」に広げるための足がかり

何が問われるか
計算量(O 記法)・基本データ構造・典型アルゴリズム(探索・整列)・再帰の挙動を読む力。
学習の進め方
擬似コードを実際にトレースして変数の遷移を表に書き出す習慣を付ける。スタック/キュー/木の図示が定着の鍵。
関連キーワード
計算量二分探索クイックソート再帰スタックキュー木構造
この分野の問題をもっと解く
AI コパイロット

この問題を AI と深掘りする

用語解説・選択肢分析・類題生成をその場で対話。クイズモードでは解答→解説がゼロ遷移。

クイズモードで開く

関連する問題

アルゴリズムとプログラミング の他の問題

他試験区分の同分野問題

基本情報技術者 と共通カリキュラムの他区分で「アルゴリズムとプログラミング」分野を演習する

他年度の「アルゴリズムとプログラミング」問題

基本情報技術者 の同じ分野を年度をまたいで演習する

基本情報技術者 の学習ガイド