IPA過去問ドリル

平成22年度 春期 応用情報技術者試験 午前 問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進数表現にして,けたごとの論理積及び論理和をとったものとする。

出典:平成22年度 春期 応用情報技術者試験 午前 問1

正解:ア

解説

next(n)はnが255未満ならn+1,n=255なら0を返す関数です。8ビットで考えると,n<255ではn+1は255以下の値のままAND 255をとっても変化せず,n=255のときはn+1=256(100000000₂)となり,255(011111111₂)とのAND演算によってちょうど0になります。したがって(n+1) AND 255はnext(n)と常に一致します。

選択肢ごとの解説

  • 正しい。n<255ではn+1はそのままAND 255の結果として保たれ,n=255のときはn+1=256とAND 255によって0になり,next(n)と一致します。
  • 誤り。256は9ビット目だけが1の値であり,255以下の値とのAND演算は常に0になってしまうため,next(n)の値を再現できません。
  • 誤り。OR 255は結果の下位8ビットをすべて1にしてしまうため,n+1の値そのものを表せません。
  • 誤り。OR 256は9ビット目を常に1にしてしまい,n=255のときに0にならず余分なビットが残ります。
応用情報技術者の過去問を演習モードで解く