a full adder
A full adder is the little circuit that adds a single column of a binary addition — and a binary computer's entire arithmetic ability is built by stacking copies of it. When you add by hand, you go column by column from the right, and each column has three things to combine: the two digits in that column and whatever carry came in from the column before. A full adder does exactly this for one bit: it takes three inputs (bit A, bit B, and a carry-in) and produces two outputs (the sum bit for this column and a carry-out to hand to the next column).
Its truth table over the three inputs follows plain arithmetic: you are adding three 1-bit numbers, so the total is 0, 1, 2, or 3, which in binary is two bits — a sum and a carry. The sum bit is 1 when an odd number of the three inputs are 1, which is exactly XOR: Sum = A XOR B XOR Cin. The carry-out is 1 when at least two of the inputs are 1: Cout = (A AND B) OR (Cin AND (A XOR B)), often described as 'a majority of the three'. A simpler cousin, the half adder, adds only two bits with no carry-in and is just Sum = A XOR B, Carry = A AND B — useful only for the very first column.
Why it matters: the full adder is the atom of computer arithmetic. Chain n of them, carry-out to carry-in, and you can add two n-bit numbers; with a clever trick (feeding the carry-in of the first one) the same hardware also subtracts using two's complement. So addition, subtraction, address calculation, and loop counting all trace back to this three-input, two-output brick. The honest caveat is that the simple chained version is slow because each adder must wait for the carry from its neighbour — a limitation that motivates faster adder designs.
Add the column where A=1, B=1, Cin=1. The three inputs sum to 3, which in binary is 11: Sum = 1, Cout = 1. Check via the formulas: Sum = 1 XOR 1 XOR 1 = 1; Cout = (1 AND 1) OR (1 AND (1 XOR 1)) = 1 OR 0 = 1. So this column writes a 1 and carries a 1 onward — just like writing '1 carry 1' on paper.
Three bits in, two bits out (sum and carry): the full adder is paper-and-pencil column addition, in gates.
The 'full' in full adder means it accepts a carry-in, unlike the half adder. That third input is essential — without it you cannot chain adders to handle multi-bit numbers, because each column's carry must reach the next.