午前問1
次に示す手順は、列中の少なくとも一つは1であるビット列が与えられたとき、最も右にある1を残し、ほかのビットをすべて0にするアルゴリズムである。例えば、00101000が与えられたとき、00001000が求まる。aに入る論理演算はどれか。
手順1 与えられたビット列Aを符号なしの2進数と見なし、Aから1を引き、結果をBとする。
手順2 AとBの排他的論理和(XOR)を求め、結果をCとする。
手順3 AとCのaを求め、結果をAとする。
手順1 与えられたビット列Aを符号なしの2進数と見なし、Aから1を引き、結果をBとする。
手順2 AとBの排他的論理和(XOR)を求め、結果をCとする。
手順3 AとCのaを求め、結果をAとする。
排他的論理和(XOR) | |
否定論理積(NAND) | |
論理積(AND) | |
論理和(OR) |
『情報処理過去問.com』からiPhoneアプリがリリースされました!!
正解
- ウ
解説
手順1〜手順3を順に求めます。
手順1
00101000-1=00100111
B=00100111
手順2
00101000 XOR 00100111=00001111
C=00001111
手順3
00101000 a 00001111=00001000
00001000になる論理演算aをア〜エにあてはめます。
手順1
00101000-1=00100111
B=00100111
手順2
00101000 XOR 00100111=00001111
C=00001111
手順3
00101000 a 00001111=00001000
00001000になる論理演算aをア〜エにあてはめます。
ア. | 排他的論理和(XOR) |
00101000 XOR 00001111=00100111 00001000とならないのでXORはaではありません。 | |
イ. | 否定論理積(NAND) |
00101000 NAND 00001111=11110111 00001000とならないのでNANDはaではありません。 | |
ウ. | 論理積(AND) |
00101000 AND 00001111=00001000 00001000となるのでANDはaです。 | |
エ. | 論理和(OR) |
00101000 OR 00001111=00101111 00001000とならないのでORはaではありません。 |