
応用情報技術者試験 平成31年度春期 午前 問1「0 以上 255 以下の整数 n に対して, next(n) = n+1 (0 …」の正解と解説です。応用情報技術者試験の「テクノロジ系」分野の過去問で、これまでの受験者の正答率は約56%です。
ア. (n+1) AND 255
正答率 56.4%(243人中 137人が正解)
0〜255 という範囲は 8 ビット(2進8桁)で表せる値の全範囲であり、255 は 2 進数で 11111111、256 は 100000000(9桁目だけが 1)である点が鍵となる。next(n) は n が 254 までなら n+1、n=255 のときだけ 0 に戻る巡回加算であり、これは 8 ビットの範囲を超えた桁(9桁目)を切り捨てる処理と同じである。255(11111111)との論理積 AND をとると下位 8 ビットだけが残り上位桁は 0 になるため、n+1 が 256(100000000)になったときだけ結果が 0 になり、それ以外は n+1 がそのまま残るので正解はアである。