LET'S TRY
問題文
次に示す手順は,列中の少なくとも一つは1であるビット列が与えられたとき,最も右にある1を残し,ほかのビットをすべて0にするアルゴリズムである。例えば,00101000が与えられたとき,00001000が求まる。aに入る論理演算はどれか。
手順1:与えられたビット列Aから1を引き,結果をBとする。
手順2:AとBの排他的論理和(XOR)を求め,結果をCとする。
手順3:AとCのaを求め,結果をAとする。
fe-siken.com
IPAの公開問題について ↗
まずは自分で考えて、理由を確かめよう。
次に示す手順は,列中の少なくとも一つは1であるビット列が与えられたとき,最も右にある1を残し,ほかのビットをすべて0にするアルゴリズムである。例えば,00101000が与えられたとき,00001000が求まる。aに入る論理演算はどれか。
手順1:与えられたビット列Aから1を引き,結果をBとする。
手順2:AとBの排他的論理和(XOR)を求め,結果をCとする。
手順3:AとCのaを求め,結果をAとする。
fe-siken.com
IPAの公開問題について ↗
自分で考えてから、解説を開いてみてね。
正解は ウ です。
具体例で検証します。A=00101000のとき,A-1=B=00100111,A XOR B=C=00001111。AとCの論理積(AND)を取ると00101000 AND 00001111=00001000となり,最も右の1のみが残ります。
学習ノートを読み込んでいます…