平成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)


答え ウ


解説
与えられたビット列A = 00101000として手順どおりに実行してみます。
手順1
 B = A - 1 = 00101000 - 1 = 00100111
手順2
 C = A XOR B = 00101000 XOR 00100111 = 00001111
手順3
 A C から00001000を求めるので、ア〜エの演算を試してみます。


キーワード
・論理演算

キーワードの解説

戻る 一覧へ 次へ