基本情報技術者 2011年 春期 午前(科目A) 問25
問題文
図に示す1けたの2進数とを加算し、(和の1けた目)及び(けた上げ)を出力する半加算器において、AとBの素子の組合せとして、適切なものはどれか。


選択肢
ア:(正解)
イ:
ウ:
エ:
🔒 解説は解答すると表示されます
半加算器の回路構成【午前解説】
正解の理由
半加算器は2ビット x,y の「和(1けた目)z」と「けた上げ c」を出す回路です。真理値表から
- z = 1 になるのは (x,y) = (0,1) または (1,0) のとき(片方だけ1)→ 排他的論理和(XOR)
- c = 1 になるのは (x,y) = (1,1) のとき(両方1)→ 論理積(AND) したがって A は XOR、B は AND であり、選択肢のうち「ア」が適切です。
数式で表すと
解法ステップ
- 出力ラベル z(和1けた目)と c(けた上げ)の意味を確認する。
- 真理値表を作成する:4通りの入力 (0,0),(0,1),(1,0),(1,1) に対する z,c を決める。
- 得られた z の列が XOR の真理(0,1,1,0)に一致するか確認する。
- 得られた c の列が AND の真理(0,0,0,1)に一致するか確認する。
- 選択肢の記述と対応させ、合致する組合せを選ぶ。
(簡単な真理値表)
- (x,y) = (0,0) → z=0, c=0
- (x,y) = (0,1) → z=1, c=0
- (x,y) = (1,0) → z=1, c=0
- (x,y) = (1,1) → z=0, c=1
選択肢別の誤答解説
- 正解:ア — A=排他的論理和(XOR)、B=論理積(AND)。上記の真理値表と完全に一致するため正しい。
- イ — A=否定論理積(NAND)、B=否定論理和(NOR):両方とも否定系であり、出力の極性が逆になるため不適。
- ウ — A=否定論理和(NOR)、B=排他的論理和(XOR):NOR は (1,0) や (0,1) で0になり z に合わないし、キャリー c に XOR を使うのは誤り。
- エ — A=論理積(AND)、B=論理和(OR):和の1けた目 z に AND を置くと (0,1) や (1,0) で z=0 になり不正解、キャリーを OR にすると (1,1) 以外でも c=1 になる可能性があり誤り。
よくある誤解
- XOR と OR を混同する:OR は少なくとも1つが1なら1になるため (1,1) のとき z=1 になり、半加算器の z とは合致しません。
- 図の黒丸を「単なる交差」と誤読する:黒丸は配線の結線を意味し、信号が分岐していることを示します(接続の有無で入力の与え方が変わります)。
- NAND/NOR などの否定系ゲートと混同する:問題文に反転(バブル)が無い限り否定は入らないことに注意。
補足コラム
- XOR は論理式で と書け、AND と OR の組合せで実現可能です。
- 半加算器は加算の最小単位。2つの半加算器と1つの OR を組み合わせれば全加算器(桁持ち込みを扱う)に拡張できます。
- 実装上の注意:XOR は単一ゲートで提供されない環境では複数の基本ゲート(AND, OR, NOT)で構成します。例えば 。
(参考:Pythonで真理値表を確認)
for x in (0,1):
for y in (0,1):
z = x ^ y # XOR
c = x & y # AND
print(x,y,"-> z",z,"c",c)
FAQ
Q1: XOR と OR を見分ける簡単なコツは?
A1: (1,1) の入力での出力を見ること。OR は 1、XOR は 0 です。これが最も判別しやすいポイントです。
A1: (1,1) の入力での出力を見ること。OR は 1、XOR は 0 です。これが最も判別しやすいポイントです。
Q2: 図の黒丸はいつも「接続」を意味しますか?
A2: 黒丸(接続点)は配線が電気的につながっていることを示します。線が交差して黒丸が無ければ単なる交差(接続なし)である場合が多いです。
A2: 黒丸(接続点)は配線が電気的につながっていることを示します。線が交差して黒丸が無ければ単なる交差(接続なし)である場合が多いです。
Q3: 半加算器と全加算器の違いは?
A3: 半加算器はけた上げ入力(桁下からのキャリー)を持たない。全加算器は入力に加えて前段からのキャリー入力を受け取ります。
A3: 半加算器はけた上げ入力(桁下からのキャリー)を持たない。全加算器は入力に加えて前段からのキャリー入力を受け取ります。
関連キーワード: 半加算器, 半加算, XOR, 排他的論理和, 論理積 (AND), キャリー, 真理値表, ブール代数, 回路図読解

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

