基本情報技術者 2018年 春期 午後 問02
論理回路に関する次の記述を読んで、設問1〜3に答えよ。
主要な論理演算の真理値表を表1に示す。
設問1:
問題文を見る 表1に示した論理演算を行う論理回路を用いて、表2に示すXOR(排他的論理和)の論理演算を行う論理回路を図1のとおり作成した。図1中のに入れる正しい答えを、解答群の中から選べ。


aに関する解答群
ア:AND
イ:NAND
ウ:NOR
エ:OR
模範解答
a:エ
解説
解答の導き方
図1では、入力 と が上段のNANDと、下段のaにそれぞれ入ります。2つの出力は、最後にANDでまとめられます。
AND(論理積)は、2つの入力がどちらも1のときだけ、出力が1になります。NAND(NOT AND:否定論理積)は、ANDの出力を反転したものです。つまり、入力がどちらも1のときだけ0になり、それ以外では1になります。
表2のXOR(Exclusive OR:排他的論理和)は、入力が異なるときに1、同じときに0を出す演算です。そこで、各入力に対する上段のNANDの出力と、下段の候補となるOR(論理和)の出力を確認します。ORは、少なくとも一方の入力が1なら出力が1になります。
たとえば、、のときは、NANDもORも1です。そのため、最後のANDの出力も1になり、表2のXORと一致します。
一方、、のときは、ORの出力は1ですが、NANDの出力は0です。最後のANDは両方の入力が1でなければ1にならないため、出力は0です。これも表2のXORと一致します。
このように、下段をORにすると、図1全体の出力が表2のXORと一致します。aにはOR、つまり解答群のエを入れます。
誤りやすいポイント
- ORとXORを同じものだと考えないようにしましょう。入力が と のとき、ORの出力は1ですが、XORの出力は0です。
- NANDの出力を、ANDの出力と取り違えないようにしましょう。NANDはANDの結果を反転するので、入力がどちらも1のときに0になります。
- 図1の最後のANDは、上段と下段の出力をまとめています。片方でも0なら、全体の出力は0です。
FAQ
Q: ORの出力が1なのに、図1全体の出力が0になることがあるのはなぜですか?
A: 最後のANDは、2つの入力が両方とも1のときだけ1になります。たとえば 、では、ORの出力は1でもNANDの出力は0なので、全体の出力は0です。
A: 最後のANDは、2つの入力が両方とも1のときだけ1になります。たとえば 、では、ORの出力は1でもNANDの出力は0なので、全体の出力は0です。
Q: XORはどのようなときに1になりますか?
A: 2つの入力が異なるときです。表2では、入力が と 、または と の場合に出力が1です。
A: 2つの入力が異なるときです。表2では、入力が と 、または と の場合に出力が1です。
関連キーワード: 論理積、論理和、否定論理積、排他的論理和、真理値表
設問2:
問題文を見る 1桁の2進数X、Yを入力して、その和の下位桁をZ、桁上がりをCに出力する半加算器の論理回路を図2に示す。図2中のに入れる正しい答えを、解答群の中から選べ。

b, cに関する解答群
ア:AND
イ:NAND
ウ:NOR
エ:OR
オ:XOR
模範解答
b:オ、c:ア
解説
解答の導き方
設問では、との和について、「下位桁を、桁上がりを」に出力するとあります。つまり、とを足した結果を、とに分けて考えます。
それぞれの入力の組合せで、和を確認しましょう。
の和は、2進数ではです。このとき、下位桁は、桁上がりはになります。
まず、の値を見ると、とが異なるときだけです。このように、入力が異なるときにを出す演算をXOR(Exclusive OR:排他的論理和)といいます。したがって、を出力するブロックはXORです。
次に、の値を見ると、とが両方とものときだけです。AND(論理積)は、両方の入力がのときだけを出す演算です。したがって、を出力するブロックはANDです。
誤りやすいポイント
- の和を、と考えないようにします。2進数ではなので、は、はです。
- ORは、少なくとも一方の入力がならを出します。そのため、両方の入力がのときに下位桁がになる動きとは一致しません。
- とは、同じ演算で求めるものではありません。はXOR、はANDで求めます。
FAQ
Q: 半加算器は、何を計算する回路ですか?
A: 1桁の2進数どうしを足し、和の下位桁と桁上がりを出力する回路です。
A: 1桁の2進数どうしを足し、和の下位桁と桁上がりを出力する回路です。
Q: なぜ桁上がりはANDで求められるのですか?
A: との両方がのときだけ、和がになって桁上がりが発生するためです。
A: との両方がのときだけ、和がになって桁上がりが発生するためです。
Q: XORとORは、どう違いますか?
A: XORは入力が異なるときにを出します。ORは、入力の少なくとも一方がならを出します。そのため、両方がのとき、XORは、ORはになります。
A: XORは入力が異なるときにを出します。ORは、入力の少なくとも一方がならを出します。そのため、両方がのとき、XORは、ORはになります。
関連キーワード: 半加算器、XOR、AND、真理値表、2進数
設問3:
問題文を見る 論理回路に関する次の記述中のに入れる正しい答えを、解答群の中から選べ。
この論理回路は、1ビットの入力X、YをそれぞれパラメタWx、Wyで重み付けして加算した結果を求め、パラメタTをしきい値として、次のとおりに動作する。
Wx×X + Wy×Y ≧ T のとき、1をZに出力する。
Wx×X + Wy×Y < T のとき、0をZに出力する。
例えば、パラメタWxが0.5、Wyが0.5、Tが0.3(以下、パラメタ[0.5, 0.5, 0.3]のように表記する)の場合には、表3に示すとおり、この論理回路における入力と出力の関係(以下、入出力関係という)はOR(論理和)になる。

同様に、
(1) AND(論理積)になる入出力関係は、パラメタdで実現できる。
(2) NAND(否定論理積)になる入出力関係は、パラメタeで実現できる。
d, eに関する解答群
ア:〔-0.5, -0.5, -0.8〕
イ:〔-0.5, -0.5, -0.2〕
ウ:〔0.5, 0.5, -0.5〕
エ:〔0.5, 0.5, 0.2〕
オ:〔0.5, 0.5, 0.8〕
カ:〔0.5, 0.5, 1.5〕
模範解答
d:オ、e:ア
解説
解答の導き方
パラメタは、順に重み 、重み 、しきい値 を表します。入力 と について、 の値が 以上なら出力 は1、 未満なら0です。
まず、AND(論理積)は、入力がどちらも1のときだけ1になります。つまり、入力の組合せが次のとき、出力も次のようになる必要があります。
選択肢オの〔0.5, 0.5, 0.8〕を使うと、入力の重み付きの合計は次のとおりです。しきい値は です。
入力がどちらも1のときだけ合計が0.8以上になるため、ANDの入出力関係になります。したがって、dにはオが入ります。
次に、NAND(否定論理積)は、ANDの出力を反対にしたものです。そのため、入力がどちらも1のときだけ0になり、それ以外は1になります。
選択肢アの〔-0.5, -0.5, -0.8〕を使うと、入力の重み付きの合計は次のとおりです。しきい値は です。
重みが負なので、入力が1になると合計が小さくなります。入力がどちらも1のときだけ合計がしきい値の を下回るため、NANDの入出力関係になります。したがって、eにはアが入ります。
誤りやすいポイント
- 出力が1になる条件は、合計がしきい値と「同じ」場合も含む「以上」です。しきい値と等しいときは、出力は1になります。
- ANDは「どちらか一方が1なら1」ではなく、「両方が1のときだけ1」です。どちらか一方が1なら1になるのはOR(論理和)です。
- NANDは、両方が1のときだけ0になります。ANDと出力の関係を逆にして考えます。
- 重みが負の場合、入力が1になるほど合計は小さくなります。重みの符号を見落とすと、しきい値との比較を誤ります。
FAQ
Q: 合計がしきい値と同じ場合、出力は0ですか、1ですか?
A: 1です。「 のとき、1をZに出力する」とあるため、しきい値と等しい場合も1になります。
A: 1です。「 のとき、1をZに出力する」とあるため、しきい値と等しい場合も1になります。
Q: しきい値や合計が負の値でもよいのですか?
A: はい。出力は、合計がしきい値以上か未満かで決まります。負の値でも、その大小を比べれば判定できます。
A: はい。出力は、合計がしきい値以上か未満かで決まります。負の値でも、その大小を比べれば判定できます。
Q: NANDの「否定」とは、何を反対にするのですか?
A: ANDの出力を反対にします。ANDが1になる入力の組合せではNANDは0になり、ANDが0になる組合せではNANDは1になります。
A: ANDの出力を反対にします。ANDが1になる入力の組合せではNANDは0になり、ANDが0になる組合せではNANDは1になります。
関連キーワード: AND、NAND、しきい値、重み、真理値表




