令和5年度春期 応用情報技術者試験 午前 問1
0以上255以下の整数nに対して,next(n)を次のように定義する。next(n)と等しい式はどれか。ここで,x AND y及びx OR yは,それぞれxとyを2進数表現にして,桁ごとの論理積及び論理和をとったものとする。

- ア (n+1) AND 255
- イ (n+1) AND 256
- ウ (n+1) OR 255
- エ (n+1) OR 256
解答・解説を見る
正解:ア
AI解説
next(n)は0以上255以下の範囲を巡回するカウンタと考えられる。n=255のときn+1=256(2進数100000000)となるが、255(2進数11111111)とのAND演算をとると上位9ビット目が切り捨てられ0に戻る。n<255のときはn+1がそのまま255以下に収まるため、AND演算をしても値は変化しない。したがって(n+1) AND 255は0〜255の範囲で循環するnext(n)の定義と一致する。 ア: 正しい。(n+1) AND 255は、n=255のときn+1=256=100000000とAND 11111111の結果0となり、それ以外はn+1のまま保たれるため、0〜255の循環動作に合致する。 イ: (n+1) AND 256は、n+1が256未満の間は256(100000000)との論理積が常に0になってしまい、単純な増分カウンタとして機能しないため誤りである。 ウ: (n+1) OR 255は、下位8ビットが常にすべて1(255)に固定されてしまい、増分に応じて値が変化するカウンタにはならないため誤りである。 エ: (n+1) OR 256は、常に9ビット目に1が立ち256以上の値になってしまい、0〜255の範囲に収まらないため誤りである。 💡 「AND 255(2進数11111111)」は下位8ビットだけを取り出すマスク処理であり、256を法とする剰余(mod 256)を求める典型的なビット演算のテクニックとして覚えておく。
※Web掲載用に表記を一部変更しています。図表はIPA公式問題冊子から引用しています。著作権はIPAに帰属します。