応用情報技術者 2018年 秋期 午前2 問23
問題文
1桁の2進数A, Bを加算し、Xに桁上がり、Yに桁上げなしの和(和の1桁目)が得られる論理回路はどれか。

選択肢
ア:(正解)
イ:
ウ:
エ:
🔒 解説は解答すると表示されます
1ビット加算回路(半加算器)【午前2解説】
正解の理由
選択肢アは上段がANDで出力が桁上がり(キャリー)を表す に対応しており、下段はORの構成で和の1桁目 を表す回路になっています。半加算器の定義から
- 桁上がり 、
- 1桁目の和 (排他的論理和)が必要です。
は次の等式で表せます。
選択肢アでは上段のANDで を得られ、下段は の否定 を用いて と を作り、それらをORすることで
が得られます。したがって回路の意図を正しく読み取ると、アが要求を満たします。
(図の「束線」は下段入力が と の信号を受けることを省略記号的に示していると解釈します。実装上は を否定するNOTと、 と 、 と を作る2つのANDが必要です。)
解法ステップ
- 要求される論理式を確認する
- carry(桁上がり):
- sum(和の1桁):
- 排他的論理和の変形を行う(実装に使いやすい形へ)
- または
- 回路図と照合する
- 上段がANDなら (条件を満たす)→ 候補はアとエ
- 下段がORで、かつ下段の入力が と に加えて と組合わされている構成(、 をOR)であれば になる → アが一致
選択肢別の誤答解説
- イ
- 上段がORなので になり、桁上がりの定義 と合わない。よって誤り。
- ウ
- 上段がORで 、下段がANDで になるため、 と が逆/誤った関係となる。誤り。
- エ
- 上段はANDで は正しいが、下段ORの入力が単に であれば となり、和(排他的和)とは異なる。誤り。
よくある誤解
- 「和は単に A∨B だ」と考える誤り
- 加算の1桁目(キャリー無視の和)は排他的論理和であり、A∨B とは異なります。A∨B は「どちらかまたは両方が1」の判定で、両方1のとき(A=B=1)で違いが出ます。
- 図中の束線を単なる分岐(同一信号の複数接続)と誤解する
- 問題図では束線が複数の信号の合成(あるいは省略記号)を示すことがあり、論理的に何が入力されているかを式で整理して確認する必要があります。
- X を先に決めずに Y を判断してしまうミス
- Y の式は (=A∧B)を用いる形にも変形できるため、まず を確定してから の実現方法を考えるとミスが減ります。
補足コラム
- 半加算器(half-adder)と全加算器(full-adder)
- 半加算器は2つの1ビット入力の和と桁上がりを出す回路(今回の問題)で、出力は sum = A⊕B、carry = A∧B。
- 全加算器は桁上がり入力(前段からのキャリー)も扱い、3入力の和を計算します。全加算器は半加算器2個とORで構成できます。
- XOR の実装バリエーション
- 基本形:
- 別形: (今回の回路はこの形を用いて実現しています)
FAQ
Q. 図の束線は具体的に何を示していますか?
A. 本問の文脈では、下段ORのそれぞれの入力は「A と ¬X をANDした信号」と「B と ¬X をANDした信号」を受ける、という意味合いで解釈します。実際の実装では、 の否定(NOT)と2つのANDが必要で、それらの出力を下段のORに入れる構成になります。
A. 本問の文脈では、下段ORのそれぞれの入力は「A と ¬X をANDした信号」と「B と ¬X をANDした信号」を受ける、という意味合いで解釈します。実際の実装では、 の否定(NOT)と2つのANDが必要で、それらの出力を下段のORに入れる構成になります。
Q. なぜ を に変形するのですか?
A. 回路要素がAND/OR/NOTのみで与えられている場合、片方の入力(ここでは既にある )を利用して簡潔に実装できるためです。 を使うことでNOTと2つのANDと1つのORで実現できます。
A. 回路要素がAND/OR/NOTのみで与えられている場合、片方の入力(ここでは既にある )を利用して簡潔に実装できるためです。 を使うことでNOTと2つのANDと1つのORで実現できます。
関連キーワード: XOR、半加算器、キャリー、論理式変形、回路実装

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

