Skip to main content

Full adder from half adders

Short answer

A full adder is built with two half adders and an OR gate. First HA computes A⊕B and AB. Second HA uses that sum with Cin to produce final sum and carry Cin(A⊕B). OR combines the two carry terms: Cout = AB + Cin(A⊕B).

Construct Full Adder using half Adder.

A full adder adds three bits AA, BB, CinC_{in} and gives sum SS and carry CoutC_{out}. A half adder adds two bits: S=X⊕YS = X \oplus Y, C=XYC = XY.

Full adder expressions

ABCinC_{in}SCoutC_{out}
00000
00110
01010
01101
10010
10101
11001
11111
S=A⊕B⊕CinS = A \oplus B \oplus C_{in} Cout=A′BCin+AB′Cin+ABCin′+ABCin=AB+Cin(A′B+AB′)=AB+Cin(A⊕B)\begin{aligned} C_{out} &= A'BC_{in} + AB'C_{in} + ABC_{in}' + ABC_{in} \\ &= AB + C_{in}(A'B + AB') = AB + C_{in}(A \oplus B) \end{aligned}

Construction with two half adders and an OR gate

  • HA1 (AA, BB): S1=A⊕BS_1 = A \oplus B, C1=ABC_1 = AB
  • HA2 (S1S_1, CinC_{in}): S=S1⊕Cin=A⊕B⊕CinS = S_1 \oplus C_{in} = A \oplus B \oplus C_{in}, C2=Cin(A⊕B)C_2 = C_{in}(A \oplus B)
  • OR: Cout=C1+C2=AB+Cin(A⊕B)C_{out} = C_1 + C_2 = AB + C_{in}(A \oplus B)
       +-----+  S1   +-----+
A ---->| HA1 |------>| HA2 |-----------> S
B ---->|     | Cin ->|     |
       +-----+       +-----+
          | C1          | C2
          +---->[OR]<---+
                  +--------------------> Cout

Check: A=1,B=0,Cin=1A=1, B=0, C_{in}=1: S1=1,C1=0S_1 = 1, C_1 = 0; S=0,C2=1S = 0, C_2 = 1; Cout=1C_{out} = 1. So 1+0+1=1021+0+1 = 10_2. Correct.

✓ Answer checked by Claude Opus 5.5 (high effort)

All Digital Logic chapter 5 questions →