令和5年度 春期 応用情報技術者試験 午前 問1
テクノロジ/基礎理論0 以上 255 以下の整数 n に対して, next(n) = n+1(0 ≦ n < 255 のとき) next(n) = 0(n = 255 のとき) と定義する。next(n) と等しい式はどれか。ここで,x AND y 及び x OR y は,それぞれ x と y を 2 進数表現にして,桁ごとの論理積及び論理和をとったものとする。
出典:令和5年度 春期 応用情報技術者試験 午前 問1
- ア(n+1) AND 255
- イ(n+1) AND 256
- ウ(n+1) OR 255
- エ(n+1) OR 256
正解:ア
解説
255 は 2 進数で 11111111(8 ビット全て 1)です。n が 0〜254 のとき n+1 は 255 以下なので,(n+1) AND 255 は n+1 のまま変わりません。n=255 のとき n+1=256 は 2 進数で 100000000 となり,下位 8 ビットは全て 0 なので (n+1) AND 255=0 になります。よって next(n) と一致するのは (n+1) AND 255 です。
選択肢ごとの解説
- ア正しい。0 ≦ n < 255 では (n+1) AND 255=n+1,n=255 では 256 AND 255=0 となり,next(n) の定義と一致します。
- イ誤り。256 は 100000000 なので,(n+1) AND 256 は n+1 が 256 のときだけ 256 になり,それ以外は 0 になってしまいます。
- ウ誤り。OR 255 は下位 8 ビットを全て 1 にするため,結果は常に 255 以上になり,n+1 を保存できません。
- エ誤り。OR 256 は 9 ビット目を 1 にするため,結果は常に 256 以上になり,next(n) の値域(0〜255)を超えます。