Before any true/false line, anchor the three gate behaviours in one picture. Each column below the gate name shows the output for the four input pairs — look at the single cell where they disagree: that lone difference is the entire half adder.
The half adder is just those two panels wired in parallel from the same two inputs. Trace the two wires in the figure: A and B fan out, one copy goes into an XOR (giving S), the other into an AND (giving C).
All eight input combinations at once — this single visual anchors both explanations used throughout the trap questions. The orange bars mark rows where the count of 1s is odd (those give S=1, the parity story); the blue shading marks rows where at least two inputs are 1 (those give Cout=1, the majority story).
The trap line "Cout=AB+(A⊕B)Cin vs AB+ACin+BCin are different" is false — here is the collapse, step by step, so you never take it on faith.
The bar chart below verifies the collapse by brute force: for all eight inputs the two formulas produce identical heights (both light up on exactly the four majority rows).
The trap questions about C1, C2 and the final OR all refer to this signal flow. Follow the arrows: HA1 takes A,B; its Sum S1=A⊕B travels into HA2 together with Cin; HA2's Sum is the final S. The two half-adder carries C1 and C2 meet at an OR gate to make Cout.
The half adder's Sum output equals the OR of its inputs.
False — Sum is XOR. OR gives 1 for the pair (1,1), but adding the two 1s should make Sum =0 with a carry; XOR correctly outputs 0 when the bits are equal.
A half adder can add two bits that already came with a carry from the previous column.
False — that is exactly what "half" denies: it has no Cin input, so it only ever sees two bits and is incomplete for chaining.
A full adder always produces a 2-bit result (Cout,S) no matter which inputs you feed it.
True — three input bits sum to at most the value 3=112, which always fits in exactly two output bits.
The full adder Sum S=A⊕B⊕Cin is 1 whenever a majority of the inputs are 1.
False — Sum tracks parity (odd count of 1s), not majority. For A=B=1,Cin=0 the majority is 1 but Sum =0.
Swapping the roles of A and Cin in a full adder changes its outputs.
False — all three inputs enter symmetrically (S is parity, Cout is majority), so any permutation of A,B,Cin gives identical outputs.
Cout=AB+(A⊕B)Cin and Cout=AB+ACin+BCin describe different circuits.
False — they are algebraically equal (see the collapse and bar chart above); the second is the plain majority form, the first is the form that falls out when you build the full adder from two half adders.
A full adder made from two half adders needs an OR gate that the direct majority-form circuit does not obviously show.
True — the two internal half-adder carries C1 and C2 can never both be 1, so their combination is an OR: Cout=C1+C2.
Why does any binary adder cell need two outputs rather than one?
Because adding two 1s gives the value 2=102, a two-bit answer, so one column must produce both a current bit (Sum) and a spill into the next column (Carry).
Why is Sum an XOR and not something else?
XOR outputs 1 exactly when the count of 1-inputs is odd; the low bit of any sum equals the parity of its addends, which is precisely what XOR encodes.
Why is the full-adder carry called the "majority function"?
Cout=1 exactly when two or three of the inputs are 1 — the value held by the majority of the three inputs.
Why can we reuse two half adders to make a full adder instead of designing new logic?
Adding three bits factors into "add two, then add the third to that partial sum", and each of those two-bit additions is exactly a half adder.
Why do the two internal half-adder carries C1 and C2 never both equal 1 at the same time?
C1=AB needs A=B=1, but then S1=A⊕B=0, so C2=S1⋅Cin=0. They are mutually exclusive, which is why an OR safely combines them into Cout.
Why does XOR give the correct Sum for three inputs when we only defined it for two?
XOR is associative — (A⊕B)⊕Cin equals A⊕(B⊕Cin) because both just answer "is the total count of 1s odd?", a fact independent of grouping — so we can chain the two-input gate and it flips output once per 1-input, landing on 1 for an odd total.
Why is a full adder the right building block for two's-complement subtraction?
Subtraction becomes "add the two's complement", so the same full-adder chain does subtraction by feeding a complemented operand plus a starting Cin=1.
Both 0 — the degenerate case: nothing to add, nothing to carry, so the outputs are the neutral (0,0).
Full adder with all inputs 0 — what is (Cout,S)?
(0,0): zero 1-inputs means even parity (Sum 0) and no majority of 1s (Carry 0).
Full adder with exactly two inputs 1 (e.g. A=B=1,Cin=0) — what is (Cout,S)?
(1,0): two 1s is a majority so Cout=1, but an even count means parity 0 so S=0 — the classic case where Sum and Carry disagree.
Full adder with all inputs 1 — why is Sum 1 rather than 0?
Three 1s is an odd count, so parity is 1; S=1 while Cout=1 too, giving 112=3.
If exactly one of the three full-adder inputs is 1, what happens to Cout?
Cout=0 — a single 1 is never a majority of three, so no carry spills out regardless of which input it is.
In a ripple-carry adder, what is the Cin of the very first (least-significant) stage?
0 for ordinary addition — there is no earlier column to carry from, so the chain starts clean.
Is there any input to a single full adder that makes Cout=1 while S=1?
Yes, only when all three inputs are 1: majority gives Cout=1 and odd parity gives S=1, i.e. 3=112.
If you accidentally tie a full adder's Cin permanently to 1, what does it compute?
The value A+B+1 in ordinary arithmetic — it always adds an extra 1, which is exactly the trick used to start a subtractor chain, but wrong for plain addition.