メインコンテンツへ
基礎理論

半加算器2つと1つのORゲートで構成された全加算器において、A=1, B=1, Cin(下位からの桁上がり入力)=1 のとき、出力の合計ビットS(Sum)と上位への桁上がりCout(Carry out)の値の組合せとして正しいものはどれか。

ア.S=1, Cout=1正解
イ.S=0, Cout=0
ウ.S=1, Cout=0
エ.S=0, Cout=1

解説

全加算器は「1桁の筆算をハードウェアで実現」したもの。1+1+1=11₂(2進数で合計3)。S=合計の下位ビット、Cout=桁上がり。

なぜ ア が正解か

Step1: 第1半加算器でA,Bを加算。A=1, B=1 → Sum1=A XOR B=0、Carry1=A AND B=1。Step2: 第2半加算器でSum1とCinを加算。Sum1=0, Cin=1 → S=Sum1 XOR Cin=0 XOR 1=1、Carry2=Sum1 AND Cin=0 AND 1=0。Step3: ORゲートでCarry1とCarry2を合成。Cout=Carry1 OR Carry2=1 OR 0=1。最終: S=1, Cout=1。検算: 1+1+1=3=11₂ → S=1(下位), Cout=1(上位) ✓

なぜ イ は間違いか

S=0, Cout=0は1+1+1=0という計算で明らかに誤り。1+1+1=3で結果は非ゼロ。

なぜ ウ は間違いか

S=1, Cout=0は合計=1を意味するが、1+1+1=3≠1。Coutが0であればSだけで3を表せないので矛盾。

なぜ エ は間違いか

S=0, Cout=1は合計=2を意味するが、1+1+1=3≠2。桁上がりはあるがSが0なのは間違い。

出典: AI生成問題(学習用)