平成22年度 春期 午前 問1
基礎理論
論理演算に関する問題
0 以上 255 以下の整数 n に対して,next(n) を次のように定義する。next(n) と等しい式はどれか。ここで,x AND y 及び x OR y は,それぞれ x と y を 2 進数表現にして,けたごとの論理積及び論理和をとったものとする。
〔next(n) の定義〕
0 ≦ n < 255 のとき next(n) = n+1 n = 255 のとき next(n) = 0
- ア(n+1) AND 255
- イ(n+1) AND 256
- ウ(n+1) OR 255
- エ(n+1) OR 256
答えと解説を見る
✓ これが正解ア(n+1) AND 255
解説
255 との論理積は下位 8 けただけを残す操作です。
この問いは、次の値を求める関数が 256 個の値の上をぐるりと 1 周する数え上げになっていることに気づけば決まります。定義を読むと、0 から 254 までは 1 を足すだけで、255 のときだけ 0 に戻ります。つまり 256 で割った余りを取る操作と同じです。ここで 255 を 2 進数で書くと 11111111 となり、下位 8 けたがすべて 1 です。ある値とこの 11111111 との論理積というけたごとの論理演算を行うと、下位 8 けたはそのまま残り、9 けた目より上はすべて 0 に落ちます。正解は n に 1 を足してから 255 との論理積を取る式です。n が 254 までのときは足した結果がそのまま残り、n が 255 のときは足した結果である 256 が 100000000 となって、下位 8 けたに 1 が 1 つも無いので 0 になります。2 のべき乗から 1 を引いた値との論理積は、そのべき乗で割った余りを取る定石で、巡回する数え上げや表の添字の折り返しで繰り返し出てきます。
ほかの選択肢はなぜ違うのか
- イ(n+1) AND 256:256 を 2 進数で書くと 100000000 で、9 けた目だけが 1、下の 8 けたはすべて 0 です。この値と論理積を取ると残したいけたが丸ごと捨てられ、n が 0 のときの結果が 1 ではなく 0 になって定義に反します。
- ウ(n+1) OR 255:けたごとの論理和は、片方が 1 であるけたをすべて 1 にします。下の 8 けたが 1 で埋まった相手を使うため結果は必ず 255 以上となり、n が 0 のときに 1 を返すという定義を満たせません。
- エ(n+1) OR 256:けたごとの論理和で 9 けた目を立てるだけの操作になります。足し算の結果に 256 が上乗せされて値がふくらむので、255 の次に 0 へ戻るという折り返しがどこでも起きません。
この問題の用語
- OR数学の手法を使って、いくつかの案から最も有利なものを選ぶ考え方です。期待される費用や利益を計算して比べるときに使います。
出典:平成22年度 春期 応用情報技術者試験 午前 問1
同じ用語が出る問題
- 令和7年度 秋期 午前 問22:論理積に関する問題(OR)
- 令和5年度 秋期 午前 問23:真理値表に示す3入力多数決回路(OR)
- 令和5年度 春期 午前 問1:論理積に関する問題(OR)
- 令和4年度 秋期 午前 問23:NANDに関する問題(OR)
- 令和3年度 秋期 午前 問22:桁上がりに関する問題(OR)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)