応用情報技術者試験 令和5年度春期 午前 問1「0 以上 255 以下の整数 n に対して,next(n) を,n+1(0≦n<…」の正解と解説です。応用情報技術者試験の「テクノロジ系」分野の過去問で、これまでの受験者の正答率は約47%です。
正解
ア. (n+1) AND 255
正答率 46.8%(1,008人中 472人が正解)
問題の解説
8 ビットで表せる値は 0〜255 で、255 に 1 を足すと 9 ビット目が立つ 256 になる。255(2 進数で 11111111)との論理積は下位 8 ビットだけを残すので、n+1 が 255 以下ならそのまま n+1、256 のときは 0 になり、next(n) の定義と一致する。
選択肢ごとの解説
- 正しい。255 は下位 8 ビットがすべて 1 なので、論理積で n+1 の下位 8 ビットがそのまま残り、256 のときは 9 ビット目が消えて 0 になる。
- 256 は 9 ビット目だけが 1 なので、結果は n+1 が 255 以下なら 0、256 なら 256 となり、next(n) と合わない。
- 255 との論理和は下位 8 ビットをすべて 1 にするので、n+1 が 255 以下なら常に 255 になり、n+1 にならない。
- 256 との論理和は 9 ビット目を 1 にするだけなので、n+1 が 255 以下なら n+257 となり、256 のときも 0 に戻らない。
応用情報技術者試験 令和5年度春期 午前 の過去問一覧に戻る・問1