This adder is based off the idea that the primary result from any addition is xor(a,b) and the carry is equal to and(a,b). These rules can be used to do addition with three digits: a carry, a first number, and a second number. Just do it a bunch of times, and wallah! Out pops an adder.