正解は ア
この問題は図で定義された関数 next(n) を求めるものです。図は [DIAGRAM_HERE] で示されていますが、問題文の「0以上255以下の整数nに対して」という条件と選択肢から推測できます。next(n) は n が 255 未満のとき n+1 を返し、n が 255 のとき 0(ラップアラウンド)を返す関数と考えられます。これは 8 ビット加算のオーバーフロー処理そのものです。(n+1) AND 255 を計算すると、n が 0〜254 の場合は n+1 がそのまま得られ、n=255 のとき (255+1)=256 で 256 AND 255 = 0x100 AND 0xFF = 0 となりラップアラウンドします。したがって選択肢 a が正解です。AND 255 は下位 8 ビットのマスクとして機能し、256(= 0x100)以上の値を 0 に戻します。
AND 演算はビットマスクとして機能する。AND 255(= AND 0xFF)は「下位 8 ビットのみ取り出す」操作。8 ビット加算のラップアラウンドは (n+1) AND 0xFF と覚える。OR は「ビットを立てる」AND は「ビットを落とす(マスク)」と区別する。