平成27年度 秋期 応用情報技術者試験 午前 問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進数表現にして,桁ごとの論理積及び論理和をとったものとする。
出典:平成27年度 秋期 応用情報技術者試験 午前 問1
- ア(n+1) AND 255
- イ(n+1) AND 256
- ウ(n+1) OR 255
- エ(n+1) OR 256
正解:ア
解説
next(n)は255未満なら+1,255ならば0に戻る「mod 256」の演算です。8ビット値に対して255(11111111)とのANDを取ると,256(100000000相当)で桁あふれした最上位ビットが切り捨てられるため,n+1が256になる場合だけ0になり,それ以外はそのままの値になります。
選択肢ごとの解説
- ア正しい。(n+1) AND 255 は,n<255では n+1 がそのまま得られ,n=255では n+1=256(100000000)の下位8ビットが0になるため,next(n)と一致します。
- イ誤り。256は9ビットの値(100000000)なので,AND 256 をとると常に最下位8ビットの情報が失われ,n<255でもnext(n)と一致しません。
- ウ誤り。OR 255は下位8ビットを全て1にしてしまうため,n<255でもnext(n)=n+1にならず255になってしまいます。
- エ誤り。OR 256も同様に,256のビットを立てるだけでn+1の値を保存できず,next(n)と一致しません。