 
  Data Structure Data Structure
 Networking Networking
 RDBMS RDBMS
 Operating System Operating System
 Java Java
 MS Excel MS Excel
 iOS iOS
 HTML HTML
 CSS CSS
 Android Android
 Python Python
 C Programming C Programming
 C++ C++
 C# C#
 MongoDB MongoDB
 MySQL MySQL
 Javascript Javascript
 PHP PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
1's Complement vs 2's Complement
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. | 
Advertisements
 