- Trending Categories
- Data Structure
- Networking
- RDBMS
- Operating System
- Java
- iOS
- HTML
- CSS
- Android
- Python
- C Programming
- C++
- C#
- MongoDB
- MySQL
- Javascript
- 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

This is one of the methods of representing signed integers in the computer. In this method, the most significant digit (MSD) takes on extra meaning.

- If the MSD is a 0, we can evaluate the number just as we would any normal unsigned integer.
- If the MSD is a 1, this indicates that the number is negative.

The other bits indicate the magnitude (absolute value) of the number.

If the number is negative, the other bits signify the 2'scomplement of the magnitude of the number.

Thus a positive number has the same representation in SM, 1's complement, and 2's complement notations. Only negative numbers are represented differently in these notations. Somesigneddecimal numbers and their equivalent in 2's complement notation is shown below, assuming a word size of 4 bits.

Signed decimal | 2’s complement |
---|---|

+6 | 0110 |

-6 | 1010 |

+0 | 0000 |

+7 | 0111 |

-7 | 1001 |

Notice that there is a single notation for 0, immaterial of whether it is +0 or –0. One may feel that 0 000 is +0 only, as the MSB, in this case, is a 0. But then, the notation for –0 should be the 2's complement of 0 000, which is1111 + 1 = 0 000 ignoring the carry.

Thus, in 2's complement, notation an extra negative number can be represented compared with SignedMagnitudeor 1's complement notation. This is because, in 2's complement notation, there is only a single notation for zero, whereas in SM and 1's complement notations there are two notations for 0.

If the word size is n bits, the range of numbers that can be represented is from -(2^{n-1}) to +(2^{n-1} -1). A table of word size and the range of 2's complement numbers that can be represented is shown next.

Word size | Range for 2’s complement numbers |
---|---|

4 | -8 to +7 |

8 | -128 to +127 |

16 | -32768 to +32767 |

32 | -2147483648 to +2147483647±2 × 10^{+9} (approx.) |

Example 1 − Add the numbers (+5) and (-3) using a computer. The numbers assumed to be represented using 4-bit 2's complement notation.

1101 <- carry generated during addition

0101 <- (+5)

+

1101<-(-3)0010 <- (+2) Sum

So in this method, that the computer straightaway gives the correct answer of +2 = 0010.

2's complement notation is not very simple to understand because it is very much different from the conventional way of representing signed numbers.

There is a single notation for zero, which is very convenient when the computer wants to test for a 0 result.

It is very convenient for the computer to perform arithmetic. The addition operation straightaway gives the correct result.

Hence, 2's complement notation is generally used to represent signed numbers inside a computer.

- Related Questions & Answers
- 1's complement notation
- 1's Complement vs 2's Complement
- 2's complement fractions
- 8085 program to find 1's and 2's complement of 8-bit number
- 8085 program to find 1's and 2's complement of 16-bit number
- 8085 program to find 2's complement of the contents of Flag Register
- 1’s and 2’s complement of a Binary Number?
- One’s Complement
- Two’s Complement
- Draw a Turing machine to find 2’s complement of a binary number
- Design a Moore machine to generate 1's complement of a binary number.
- 10’s Complement of a decimal number?
- Find One’s Complement of an Integer in C++
- Previous number same as 1’s complement in C++
- What's the Kotlin equivalent of Java's String[]?

Advertisements