本文へ移動

基本情報技術者試験 · 学習ガイド

2013年度 秋期 午後の問題・解答解説

旧制度の午前・午後と、2023年度以降の科目A・科目Bの公開問題を区別しています。現在の試験対策では現行シラバスと科目Bの形式を確認してください。公開問題は本試験の全出題を網羅する資料ではありません。

2013年度 秋期 午後の概要
30:00

問題番号から選ぶ

論理演算と加算器の設計

ハードウェア · 論理回路 / 真理値表 / 半加算器 / 全加算器 / 桁あふれ検出

論理演算(AND, OR, XOR, NOT, NAND, NOR)の真理値表に基づく等価回路の構成、2進数1ビットを加算する半加算器および全加算器の内部構成、ならびに4ビット符号付き2進整数加算器における桁あふれ検出回路(VF)およびゼロ検出回路(ZF)の設計に関する問題である。

解答・解説を表示

解答

設問1 a: イ, 設問1 b: ア, 設問2: オ, 設問3: エ, 設問4 c: オ, 設問4 d: ウ

解説

まず要点:論理回路では、半加算器(2進数の1桁を足す回路)の和をXOR(2つの入力が違うときだけ1になる演算)で、桁上がりをAND(両方が1のときだけ1になる演算)で表します。さらにド・モルガンの法則を使うと、NOT(反転)とANDやORを組み合わせてNANDやNORと同じ働きの回路が作れます。符号付き2進数のオーバーフロー(計算結果が表せる範囲を超えること)は、最上位ビットへの桁上がりと最上位ビットからの桁上がりが食い違うことで見つけられます。全ビットが0かどうかは、NORとANDを組み合わせて判定します。

解き方

  1. ド・モルガンの法則を使い、NOTと基本の論理回路を組み合わせてNANDやNORと同じ働きの回路を見つけます。
  2. 半加算器の真理値表から、和がXOR、桁上がりがANDになることを確かめ、全加算器では2つの桁上がりをORでまとめることを確認します。
  3. 4ビット加算器のオーバーフローは最上位への桁上がりと最上位からの桁上がりが違うことで気づけるのでXORを使い、全ビットが0かの判定にはNORを使うと分かります。

小問ごとの答え

小問 設問1 a:イ
NANDの論理式は NOT(X AND Y) であり、ド・モルガンの法則により (NOT X) OR (NOT Y) と等価になります。入力XとYをそれぞれNOT回路に通した後にOR回路へ入力している回路イがNANDを表します。選択肢アは (NOT X) AND (NOT Y) = NOT(X OR Y) でありNOR回路、ウは (NOT X) XOR (NOT Y) = X XOR Y、エは NOT(X XOR Y) でありXNOR回路です。
小問 設問1 b:ア
NORの論理式は NOT(X OR Y) であり、ド・モルガンの法則により (NOT X) AND (NOT Y) と等価になります。入力XとYをそれぞれNOT回路に通した後にAND回路へ入力している回路アがNORを表します。回路イはNAND回路、回路ウはXOR回路、回路エはXNOR回路です。
小問 設問2:オ
半加算器の和Zは、入力XとYが (0,1) または (1,0) のときに1となり、(0,0) または (1,1) のときに0となるため、排他的論理和 XOR(X, Y) です。桁上がりCはXとYが共に1のときのみ1となるため AND(X, Y) です。図1のZを出力する空欄に入る論理素子はXOR(オ)です。選択肢ア(AND)は桁上がりC用、イ(NAND)、ウ(NOR)、エ(OR)は和の真理値表と一致しません。
小問 設問3:エ
全加算器において、全体の桁上がりCは「XとYの加算で桁上がりが生じる(1つ目の半加算器のC)」または「XとYの和とCinの加算で桁上がりが生じる(2つ目の半加算器のC)」のいずれかの場合に1となります。これら2つの桁上がり信号が同時に1になることはないため、両者の論理和をとるOR回路(エ)が接続されます。選択肢ア(AND)、イ(NAND)、ウ(NOR)では正しい桁上がり条件を満たせません。
小問 設問4 c:オ
符号付き加算において、最上位ビット(符号ビット)への桁上がりC3と、最上位ビットからの桁上がりC4が一致しない場合にオーバーフロー(桁あふれ)が生じます(β部分:C3=0かつC4=1、またはC3=1かつC4=0)。2入力の値が異なるときに1を出力する論理素子はXOR(オ)であるため、空欄cにはXORが入ります。選択肢ア(AND)、イ(NAND)、ウ(NOR)、エ(OR)では不一致を検出できません。
小問 設問4 d:ウ
加算結果 S1〜S4 が全て0のときに ZF=1 とする必要があります。図5では2ビットずつ [ d ] に入力し、その2つの出力をANDゲートに通しています。ANDゲートの出力が1になるには両方の [ d ] の出力が1である必要があります。入力の2ビットが共に0のときだけ1を出力するゲートは否定論理和 NOR(ウ)です。S1 NOR S2 が1(S1=0かつS2=0)、かつ S3 NOR S4 が1(S3=0かつS4=0)のとき、ZF=1 となります。

覚えるポイント

  • 半加算器の和はXOR、桁上がりはANDである。
  • 全加算器の最終的な桁上がりは2つの半加算器の桁上がりのORである。
  • 符号付き2進加算のオーバーフロー検出は、最上位への桁上がりと最上位からの桁上がりのXORである。

間違えやすいところ

  • ド・モルガンの法則で、NOTを入力側につけたANDがNOR、NOTを入力側につけたORがNANDになる関係を逆に覚えやすいので注意します。
  • オーバーフローを単に最上位からの桁上がりC4が起きたことだと勘違いし、C3とのXORで判定する点を忘れがちです。

出題の前提:平成25年度秋期基本情報技術者試験 午後 問1

出典:IPA『2013年度 秋期 午後』
公式問題冊子 p.5 ↗(www.ipa.go.jp) / 公式問題冊子 p.6 ↗(www.ipa.go.jp) / 公式問題冊子 p.7 ↗(www.ipa.go.jp) / 公式問題冊子 p.8 ↗(www.ipa.go.jp) / 公式問題冊子 p.9 ↗(www.ipa.go.jp)

2013年度 秋期 午後

参照した公式資料

IPAが公開した2013年度 秋期 午後の問題・解答資料です。