令和5年度 春期 応用情報技術者試験 午前 問1

テクノロジ基礎理論

この問題は2023(R5)春 応用情報技術者 午前に出題されたものです。出題時点の法令・制度に基づく内容のため、現行の内容と一致しない場合があります。

本ページの問題文・選択肢は、原本の体裁を Web 表示用に正規化しています(改行・記号・数式・図表参照の調整)。設問の趣旨および正解に影響する変更は加えていません。

0以上255以下の整数 nn に対して,

と定義する。next(n)next(n)と等しい式はどれか。ここで,xx AND yy 及び xx OR yy は,それぞれ xxyy を2進数表現にして,桁ごとの論理積及び論理和をとったものとする。

next(n)の定義
図の説明テキスト

next(n) の定義を示す数式ブロック。next(n) は、0≦n<255 のとき n+1、n=255 のとき 0 と定義されている。

解答・解説を読む

正解: 選択肢

問題文から、next(n)next(n) は0から255までの整数を1ずつ増やし、255の次は0に戻る動作を行う式を選ぶ問題であることが分かります。

正解の根拠

nn は0以上255以下の整数であるため、n+1n+1 は1以上256以下の値をとります。求める式は、nn が0から254のときは n+1n+1 となり、nn が255のとき(つまり n+1=256n+1=256 のとき)に0となる計算です。

  1. nn が0から254の場合:
    n+1n+1 は1から255となります。255は2進数で下位8ビットがすべて1(11111111)です。したがって、(n+1)(n+1) と255の AND(論理積) をとると、(n+1)(n+1) の値がそのまま得られます。
  2. nn が255の場合:
    n+1n+1 は256となります。256は2進数で9ビット目のみが1(100000000)です。これを255(011111111)とAND演算すると、各桁で必ずどちらかが0になるため、結果は0になります。

以上より、目的の動作を満たす式は (n+1)(n + 1) AND 255255 となります。

各選択肢の解説

  • ア:(n+1)(n + 1) AND 255255
    正解です。255の次に0に戻り、それ以外は1ずつ増加する動作を満たします。
  • イ:(n+1)(n + 1) AND 256256
    256(100000000)とのANDをとるため、n=255n=255 のときのみ256となり、それ以外はすべて0になってしまいます。
  • ウ:(n+1)(n + 1) OR 255255
    255(011111111)との OR(論理和) をとるため、下位8ビットが常にすべて1となり、正しいカウントアップができません。
  • エ:(n+1)(n + 1) OR 256256
    256(100000000)とのORをとるため、常に9ビット目が1になってしまい、計算結果が本来の値に256を加算したものになってしまいます。