Converting between Binary Number Formats

Updated on July 18, 2011

Converting between binary number formats

Converting between binary number formats is straightforward. Computer Engineers need to know how to perform binary number format conversions because the operations are a fundamental feature of all digital computers. Computer programmers who work at the hardware/software interface level also need knowledge of binary number conversions.

The unsigned binary format is always assumed to be positive, with no sign bit.

For example, a 4 bit number would be written this way:

10102

All 4 bits are used to encode the magnitude of the number. The above example converts to base 10 as

23+ 21 = 8 + 2 = 1010

The range of our 4 bit unsigned binary number is always 00002 to 11112 or 010 to 1510.

Consider another 4 bit binary number that includes a sign bit. Rather than 4 bits of magnitude, the number can encode only 3 bits of magnitude since one bit is given over to indicating the sign of the number. Using the same example that we used above:

10102

The bit pattern is identical. The conversion to base 10 is completely different:

(-1) * (21) = 210

The leftmost bit, instead of contributing to the magnitude of the number, is an indicator of the sign of the number. In the above example, the number is negative because the leftmost bit is 1. A 0 in the leftmost bit implies the number is positive.

This format is referred to as Sign-Magnitude format.

The range of our 4 bit unsigned binary number is always 11112 , which is -710, to 01112, which is +710.

Sign-magnitude binary representation has a quirk. The format has two ‘zero’ values. 10002 and 00002 are both considered to be zero. Sometimes these two values are referred to as negative zero and positive zero.

A more popular binary format is 2’s complement. Unlike sign-magnitude format, 2’s complement only has one zero value (whew). A 1 in the leftmost bit indicates a negative number, but the conversion to base 10 is not as simple as it is with sign-magnitude numbers. Recalling our previous example:

10102

To summarize the conversion process: invert all the bits and add 1.

10102 inverts to 0101. We know it’s negative because the leftmost bit is 1.

0101 + 1 = 0110 = +610.

Apply the negative sign because the leftmost bit was 1; we get -610.

Conclusion

Converting between binary number formats has been demonstrated.

working