Adders are used extensively in Computer arithmetic in addition, Subtraction, multiplication and division. There are is a constant attempt to make Adders faster as faster Arithmetic leads to faster Machine , E,g Faster Graphics . At very basic level Adders are classified as Half Adders and Full Adders:

Half Adder : Its a 1-bit Adder with no Carry-in. Output is 1-bit Sum and a Carry-out. Sum is XOR of inputs and Carry out is AND of inputs & is represented as follows:

```Sum   = A ^ B;
Carry = A & B;```

Gate and block diagram representation of Half Adder is shown below :

Full Adder : Its a 1-bit/multi-bit Adder with carry in from previous Adder. Sum and Carry-out are represented as :

```Sum    = A ^ B ^ C;
= A B C + A' B' C' + A' B C' + A B'C';

Carry  = C (A ^ B) + AB;
= C ( A B' + A' B) + AB;
= A B' C + A' B C + A B;```

Gate and block diagram representation of Half Adder is shown below :

Multi-bit Adders can be formed by combining HA and FA. In each case, calculation of Carry is the most critical part in terms of Timing. Here’s an example of 2-bit Adder & 4-bit Adder formed using 1 HA and multiple FA:

In order to optimize carry and make Adders fasters, different flavors of Adders have been introduced: