How to convert signed binary numbers in two's complement representation from binary system to decimal
To understand how to convert a signed binary number in two's complement representation from the binary system to decimal (base ten), the easiest way is to do it by an example - convert binary, 1101 1110, to base ten:
- In a signed binary two's complement, first bit (leftmost) indicates the sign, 1 = negative, 0 = positive. The first bit is 1, so our number is negative.
- Get the signed binary representation in one's complement, subtract 1 from the initial number:
1101 1110 - 1 = 1101 1101 - Get the binary representation of the positive number, flip all the bits in the signed binary one's complement representation (reversing the digits) - replace the bits set on 1 with 0s and the bits on 0 with 1s:
!(1101 1101) = 0010 0010 - Write bellow the positive binary number representation in base two, and above each bit that makes up the binary number write the corresponding power of 2 (numeral base) that its place value represents, starting with zero, from the right of the number (rightmost bit), walking to the left of the number, increasing each corresonding power of 2 by exactly one unit:
powers of 2: 7 6 5 4 3 2 1 0 digits: 0 0 1 0 0 0 1 0 - Build the representation of the positive number in base 10, by taking each digit of the binary number, multiplying it by the corresponding power of 2 and then adding all the terms up:
0010 0010(2) =
(0 × 27 + 0 × 26 + 1 × 25 + 0 × 24 + 0 × 23 + 0 × 22 + 1 × 21 + 0 × 20)(10) =
(0 + 0 + 32 + 0 + 0 + 0 + 2 + 0)(10) =
(32 + 2)(10) =
34(10)
Signed binary number in two's complement representation, 1101 1110 = -34(10), a signed negative integer in base 10.