答え ア
【解説】
まず、選択肢のイとエですが1と論理和して結果が0になることはありませんので、イとエが間違いであることがわかります。
10進数の16を2進数8けた(8ビット)で表すとどうなるかを考えます。
16=0001 0000b
また、16の2倍の32、3倍の48、4倍の64はそれぞれ
32=0010 0000b
48=0011 0000b
64=0100 0000b
ここで大体予想が付くと思いますが、16の倍数を2進数で表すと下位4ビットが0になっていることがわかります。
残った選択肢のアとウを16を計算して見ます。
ア 0001 0000 and 0000 1111=0000 0000
ウ 0001 0000 and 1111 0000=0001 0000
したがって答えはアになります。
ちなみに2の倍数(偶数)は最下位ビットが0ですので、調べたい整数x が偶数か奇数かを調べるときは1(0000 0001b)と論理積(and)を計算し結果が0になれば偶数、1になれば奇数です。
これを、C言語で書くと
if( ( x & 1 ) == 1)
奇数
else
偶数
になります。(こういうプログラムを書くとできるやつとおもわれるかもしれません。)