One's Complement

Learn the representation of signed numbers in binary using one's complement.

The sign-magnitude representation has limitations, such as the duplication of zero representations and increased complexity in comparison operations. The inversion-based representation overcomes these limitations and simplifies comparison and arithmetic operations.

What is one’s complement?

One’s complement representation is another way of representing signed numbers. A number’s representation in one’s complement has the same number of bits as the original number, plus a bit called the sign bit on the extreme left (the MSB). The sign bit denotes that the number is negative if it is set to 11, and positive if it is set to 00. To represent a negative number, the other bits hold the complement of the original number in binary. To represent a positive number, the bits hold the number as it is in binary.

Note: The complement of a binary number is the number with all the individual bits inverted. That means that every 11 turns into a 00 and vice versa. For example, the complement of the number 10100011010001 is 01011100101110.

One of the major drawbacks of one’s complement is that it has two representations for 00, a negative 00 and a positive 00. For an 88-bit representation, these are 0000000000000000 and 1111111111111111. This is wasteful, because we lose out on one representation of one number.

Range

So what is the range of numbers that we can represent with an nn-bit one’s complement number?

Note: Remember one bit is dedicated to the sign, so that leaves n1n-1 bits for the actual number representation. Following the rule from the previous chapter, the largest number we can represent using n1n-1 bits is 2n112^{n-1}-1. So, our range is -2n112^{n-1}-1 to 2n112^{n-1}-1.

Get hands-on with 1400+ tech skills courses.