# 1's Complement vs 2's Complement

Data Structure and AlgorithmsMathematicsDigital Electronics

#### Mastering DAX and Data Models in Power BI Desktop

53 Lectures 5.5 hours

#### Big Data Hadoop

Best Seller

89 Lectures 11.5 hours

#### Data Science Bootcamp with Power BI and Python

Best Seller

52 Lectures 3.5 hours

Complements are used in digital computers in order to simply the subtraction operation and for the logical manipulations. For the Binary number (base-2) system, there are two types of complements: 1’s complement and 2’s complement.

## 1’s Complement of a Binary Number

There is a simple algorithm to convert a binary number into 1’s complement. To get 1’s complement of a binary number, simply invert the given number.

## 2’s Complement of a Binary Number

There is a simple algorithm to convert a binary number into 2’s complement. To get 2’s complement of a binary number, simply invert the given number and add 1 to the least significant bit (LSB) of given result.

## Differences between 1’s complement and 2’s complement

These differences are given as following below −

1’s complement
2’s complement
To get 1’s complement of a binary number, simply invert the given number.
To get 2’s complement of a binary number, simply invert the given number and add 1 to the least significant bit (LSB) of given result.
1’s complement of binary number 110010 is 001101
2’s complement of binary number 110010 is 001110
Simple implementation which uses only NOT gates for each input bit.
Uses NOT gate along with full adder for each input bit.
Can be used for signed binary number representation but not suitable as ambiguous representation for number 0.
Can be used for signed binary number representation and most suitable as unambiguous representation for all numbers.
0 has two different representation one is -0 (e.g., 1 1111 in five bit register) and second is +0 (e.g., 0 0000 in five bit register).
0 has only one representation for -0 and +0 (e.g., 0 0000 in five bit register). Zero (0) is considered as always positive (sign bit is 0)
For k bits register, positive largest number that can be stored is (2(k-1)-1)  and negative lowest number that can be stored is -(2(k-1)-1).
For k bits register, positive largest number that can be stored is (2(k-1)-1) and negative lowest number that can be stored is -(2(k-1)).
end-around-carry-bit addition occurs in 1’s complement arithmetic operations. It added to the LSB of result.
end-around-carry-bit addition does not occur in 2’s complement arithmetic operations. It is ignored.
1’s complement arithmetic operations are not easier than 2’s complement because of  addition of end-around-carry-bit.
2’s complement arithmetic operations are much easier than 1’s complement because of there is no addition of end-around-carry-bit.
Sign extension is used for converting a signed integer from one size to another.
Sign extension is used for converting a signed integer from one size to another.