The output is the binary representation of how many inputs are high.
This can only be 0, 1 or 2, so the outputs are 00, 01, or 10. The first
(leftmost) bit is the "sum" and the second bit (rightmost) is the "carry" bit.
Full adder
The output is again the binary representation of how many inputs are high, but
now we have an incomming carry bit, so there can be 0, 1, 2 or 3.
Full adder
Same as above, but with the numbers decoded so that you can see how
this actually adds numbers.
Ripple carry adder
Adds together two 3-bit numbers A2A1A0 and B2B1B0. Outcome is stored
in S3S2S1S0
Ripple carry adder with number decoders
Same as above, but with extra junk to display the encoded numbers.