応用情報技術者試験 令和5年度春期 午前 問1「0 以上 255 以下の整数 n に対して,next(n) を,n+1(0≦n<…」の正解と解説です。応用情報技術者試験の「テクノロジ系」分野の過去問で、これまでの受験者の正答率は約47%です。
ア. (n+1) AND 255
正答率 46.6%(1,002人中 467人が正解)
8ビットで表せる 0〜255 の値を、255 の次に 0 へ戻す(循環させる)処理をビット演算で表現する問題です。255 は 2 進数で 11111111(下位8ビットがすべて1)なので、ある値と 255 の AND をとると下位8ビットだけが残り、9 ビット目以降は 0 で消えます。n=255 のとき n+1=256=100000000 ですが、これと 255 の AND は 00000000=0 となって正しく 0 に戻り、0〜254 のときは n+1 が 8 ビット内に収まるので値がそのまま残ります。したがって “(n+1) AND 255” が next(n) と一致します。