The operation of adding two binary numbers is one of the fundamental tasks performed by a digital computer. The four basic addition operations are 0 + 0 = 0, 1 + 0 = 1, 0 + 1 = 1 and 1 + 1 = 10. In the first three operations, each binary addition gives sum as one bit , i.e. , either 0 or 1.

But the fourth addition operation gives a sum that consists of two binary digits. In such result of the addition, lower significant bit is called as the sum bit, whereas the higher significant bit is called as the carry bit. The logic circuits which are designed to perform the addition of two binary numbers are called as binary adder circuits. In this article we are going to look at the binary addition performed by various adder circuits.

### Binary Addition Circuits

Logic gates are used to accomplish the arithmetic operation of binary addition in digital circuits. A two input logic gate is required to accomplish the addition of two binary numbers. The exclusive-OR gate is used to achieve binary addition which is slightly different from basic OR gate.

An inclusive-OR gate or basic OR gate adds integers together and produces an output 1 when both or either inputs are high. However, an OR gate does not achieve the binary addition because of the distinct operation compared with Ex-OR gate. The figure below shows inclusive –OR gate and exclusive-OR gate with logic symbols and Boolean expressions.

From the above figure, inclusive-OR gate has three outputs which are expressed as the product the inputs. These outputs are added to produce the complete sum and this can be simplified to Z = A + B. Now, compare the exclusive-OR gate output expression with the inclusive-OR gate.

There is a distinct difference between these two, hence the inclusive-OR gate achieves OR addition of integers where as the exclusive-OR performs the binary operation.

By using several combinations of logic gates, an exclusive-OR (Ex-OR) gate can be implemented. These combinations use some of the basic logic gates such as AND, OR, NOT, NAND, etc.

Several Ex-OR gates can be integrated on a single IC chip using TTL as well as CMOS technologies. A typical IC 74LS86 is a 14 pin dual in-line package that has four Ex-OR gates. Now we will discuss about various binary addition circuits.

#### Half Adder

A logic circuit block used for adding two one bit numbers or simply two bits is called as a half adder circuit. This circuit has two inputs which accept the two bits and two outputs, with one producing sum output and other produce carry output.

As we discussed above that binary addition is commonly performed by Ex-OR gate, but for the first three rules , it performs the binary addition and when the two inputs are logic 1, it does not develop any carry.

To accomplish the binary addition with Ex-OR gate, there is need of additional circuitry to perform the carry operation. Hence, a half adder is formed by connecting AND gate to the input terminals of the Ex-OR gate so as to produce the carry as shown in below figure.

In the above half adder , inputs are labeled as A and B. The sum output is labeled with the summation symbol ? and the carry output or carry out is labeled with Co. Half adder is mainly used for addition of augend and addend of first order binary numbers.

Half adder has limited number of applications, and practically not used in the application especially multi-digit addition. In such applications carry of the previous digit addition must be added along with two bits; hence it is three bits addition.

#### Full Adder

A binary full adder is a multiple output combinational logic network that performs the arithmetic sum of three input bits. As we have seen that the half adder cannot respond to the three inputs and hence the full adder is used to add three digits at a time.

It consists of three inputs, in which two are input variables represent the two significant bits to be added, labeled as A and B, whereas the third input terminal is the carry from the previous lower significant position and labeled as Cin. The two outputs are a sum and a carry outputs which are labeled as ? and Cout respectively.

Full adder can be formed by combining two half adders and an OR gate as shown in above where output and carry-in of the first adder becomes the input to the second half adder that produce the total sum output. The total carry out is produced by ORing the two half adder carry outs as shown in figure. The full adder block diagram and truth table is shown below.

#### Parallel Binary Adders

As we discussed that a single full adder performs the addition of two one bit numbers and an input carry. For performing the addition of binary numbers with more than one bit, more than one full adder is required depends on the number bits. Thus, a parallel adder is used for adding all bits of the two numbers simultaneously.

By connecting a number of full adders in parallel, n-bit parallel adder is constructed. From the below figure, it is to be noted that there is no carry at the least significant position, hence we can use either a half adder or made the carry input of full adder to zero at this position.

The figure below shows a parallel 4 bit binary adder which has three full adders and one half-adder. The two binary numbers to be added are A3A2A1A0 and B3B2B1B0 which are applied to the corresponding inputs of full adders. This parallel adder produces their sum as C4S3S2S1S0 where C4 is the final carry.

In the 4 bit adder, first block is a half-adder that has two inputs as A0B0 and produces their sum S0 and a carry bit C1. Next block should be full adder as there are three inputs applied to it. Hence this full adder produces their sum S1 and a carry C2. This will be followed by other two full adders and thus the final sum is C4S3S2S1S0.

Most commonly Full adders designed in dual in-line package integrated circuits. A typical 74LS283 is a 4 bit full adder. Arithmetic and Logic Unit of a unit computer consist of these parallel adders to perform the addition of binary numbers.

### Binary Subtraction Circuits

Subtraction is a mathematical operation in which one integer number is deducted from another to obtain the equivalent quantity. The number from which other number is to be deducted is called as minuend and the number subtracted from the minuend is called subtrahend. Similar to the binary addition, binary subtraction is also has four possible alternative operations.

The above figure shows the four possible rules or elementary operations of the binary subtractions. In all the operations, each subtrahend bit is deducted from the minuend bit.

But in the second rule, minuend bit is smaller than the subtrahend bit, hence 1 is borrowed to perform the subtraction. Similar to the adder circuits, subtraction circuits are also classified as half subtractors, full subtractors and parallel subtractors.

#### Half Subtractors

A half subtractor is a multiple output combinational logic network that does the subtraction of two bits of binary data. It has input variables and two output variables. Two inputs are corresponding to two input bits and two output variables corresponds to the difference bit and borrow bit.

The binary subtraction is also performed by the Ex-OR gate with additional circuitry to perform the borrow operation. Thus, a half subtractor is designed by an Ex-OR gate including AND gate with A input complemented before fed to the gate.

The block model, truth table and logic diagram of a half subtractor shown in above figure. This circuit is similar to the half adder with only difference in input A i.e., minuend which is complemented before applied at the AND gate to implement the borrow output.

In case of multi-digit subtraction, subtraction between the two digits must be performed along with borrow of the previous digit subtraction, and hence a subtractor needs to have three inputs. Therefore, a half subtractor has limited applications and strictly it is not used in practice.

#### Full Subtractor

A combinational logic circuit performs a subtraction between the two binary bits by considering borrow of the lower significant stage is called as the full subtractor. In this, subtraction of the two digits is performed by taking into consideration whether a 1 has already borrowed by the previous adjacent lower minuend bit or not.

It has three input terminals in which two terminals corresponds to the two bits to be subtracted (minuend A and subtrahend B), and a borrow bit Bi corresponds to the borrow operation. There are two outputs, one corresponds to the difference D output and other borrow output Bo as shown in figure along with truth table.

By deriving the Boolean expression for the full subtractor from above truth table, we get the expression that tells that a full subtractor can be implemented with half subtractors with OR gate as shown in figure below.

By comparing the adder and subtractor circuits or truth tables, one can observe that the output D in the full subtractor is exactly same as the output S of the full adder. And the only difference is that input variable A is complemented in the full subtractor.

Therefore, it is possible to convert the full adder circuit into full subtractor by simply complementing the input A before it is applied to the gates to produce the final borrow bit output Bo.

#### Parallel Binary Subtractors

To perform the subtraction of binary numbers with more than one bit is performed through the parallel subtractors. This parallel subtractor can be designed in several ways, including combination of half and full subtractors, all full subtractors, all full adders with subtrahend complement input, etc.

The below figure shows a 4 bit parallel binary subtractor formed by connecting one half subtractor and three full subtractors.

In this subtractor, 4 bit minuend A3A2A1A0 is subtracted by 4 bit subtrahend B3B2B1B0 and gives the difference output D3D2D1D0. The borrow output of each subtractor is connected as the borrow input to the next preceding subtractor.

It is also possible to design a 4 bit parallel subtractor 4 full adders as shown in the below figure. This circuit performs the subtraction operation by considering the principle that the addition of minuend and the complement of the subtrahend is equivalent to the subtraction process.

We know that the subtraction of A by B is obtained by taking 2’s complement of B and adding it to A. The 2’s complement of B is obtained by taking 1’s complement and adding 1 to the least significant pair of bits.

Hence, in this circuit 1’s complement of B is obtained with the inverters (NOT gate) and a 1 can be added to the sum through the input carry.

### Parallel Adder / Subtractor

The operations of both addition and subtraction can be performed by a one common binary adder. Such binary circuit can be designed by adding an Ex-OR gate with each full adder as shown in below figure. The figure below shows the 4 bit parallel binary adder/subtractor which has two 4 bit inputs as A3A2A1A0 and B3B2B1B0.

The mode input control line M is connected with carry input of the least significant bit of the full adder. This control line decides the type of operation, whether addition or subtraction.

When M= 1, the circuit is a subtractor and when M=0, the circuit becomes adder. The Ex-OR gate consists of two inputs to which one is connected to the B and other to input M. When M = 0, B Ex-OR of 0 produce B. Then full adders add the B with A with carry input zero and hence an addition operation is performed.

When M = 1, B Ex-OR of 0 produce B complement and also carry input is 1. Hence the complemented B inputs are added to A and 1 is added through the input carry, nothing but a 2’s complement operation. Therefore, the subtraction operation is performed.

Abdullahi Mohamed Isaac says

thank you

med aymane ahajjam says

great.. very explicit! Thanks (y)

Abdulkadir says

Thanks, it’s really been useful

Douglas Koo says

Thank you so much

Mac Nicholas says

It’s really been useful and relevant Thanks.

Mohd Tauheed khan says

Thank you so much

tarhouchi ayoub says

thank you so much

aaaaaaa says

Really helpful! used this to build a calculator in minecraft lol

Nate says

Me too!

belal iqbal says

what if B>A and Cout generated is ‘0’ in case of subtraction, S3S2S1S0, is the 2’s complement of the actual output.

in that case, this circuit won’t actually depict subtraction for all cases, it is limited for A>B subtraction

ash09122 says

thanks i appreciate that

Nate says

Thank you so much for this. I found a way to make a transistor in minecraft and this site has really helped me with my current calculator project. Now I just need to figure out a way to make it convert from decimal to binary and back.

heart_and_pen says

Thank you for the definitions ! Very much satisfied ! Easy to understand

Krzysztof Billewicz says

thank you so much