IPA過去問ドリル

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

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

正解:ア

解説

255は2進数で 11111111 であり,これとの論理積は下位8ビットだけを取り出すマスクとして働きます。0≦n<255 のとき n+1 は255以下なので (n+1) AND 255 は n+1 のままです。n=255 のときは n+1=256=100000000 となり,下位8ビットは全て0なので結果は0になります。したがって next(n)=(n+1) AND 255 が成り立ちます。

選択肢ごとの解説

  • 正しい。255(11111111)との論理積は下位8ビットを残すマスクとして働き,n=255 のときだけ結果が0になるので next(n) と一致します。
  • 誤り。256(100000000)との論理積は第9ビットだけを残すので,n<255 では結果が常に0となり n+1 になりません。
  • 誤り。255との論理和は下位8ビットを全て1にするので,n の値によらず結果は常に255になってしまいます。
  • 誤り。256との論理和は第9ビットを1にするだけなので,n=0 のとき257,n=255 のとき256となり,どちらも next(n) と一致しません。
応用情報技術者の過去問を演習モードで解く