How to convert signed integers from the decimal system to signed binary in one's complement representation
Follow the steps below to convert a signed base 10 integer number to signed binary in one's complement representation:
- 1. If the number to be converted is negative, start with the positive version of the number.
- 2. Divide repeatedly by 2 the positive representation of the integer number that is to be converted to binary, keeping track of each remainder, until we get a quotient that is equal to ZERO.
- 3. Construct the base 2 representation of the positive number, by taking all the remainders starting from the bottom of the list constructed above. Thus, the last remainder of the divisions becomes the first symbol (the leftmost) of the base two number, while the first remainder becomes the last symbol (the rightmost).
- 4. Binary numbers represented in computer language must have 4, 8, 16, 32, 64, ... bit length (a power of 2) - if needed, fill in '0' bits in front (to the left) of the base 2 number calculated above, up to the right length; this way the first bit (leftmost) will always be '0', correctly representing a positive number.
- 5. To get the negative integer number representation in signed binary one's complement, replace all '0' bits with '1's and all '1' bits with '0's.
Example: convert the negative number -49 from the decimal system (base ten) to signed binary one's complement:
- 1. Start with the positive version of the number: |-49| = 49
- 2. Divide repeatedly 49 by 2, keeping track of each remainder:
- division = quotient + remainder
- 49 ÷ 2 = 24 + 1
- 24 ÷ 2 = 12 + 0
- 12 ÷ 2 = 6 + 0
- 6 ÷ 2 = 3 + 0
- 3 ÷ 2 = 1 + 1
- 1 ÷ 2 = 0 + 1
- 3. Construct the base 2 representation of the positive number, by taking all the remainders starting from the bottom of the list constructed above:
49(10) = 11 0001(2) - 4. The actual bit length of base 2 representation is 6, so the positive binary computer representation of a signed binary will take in this case 8 bits (the least power of 2 that is larger than 6) - add '0's in front of the base 2 number, up to the required length:
49(10) = 0011 0001(2) - 5. To get the negative integer number representation in signed binary one's complement, replace all '0' bits with '1's and all '1' bits with '0's:
-49(10) = 1100 1110 - Number -49(10), signed integer, converted from the decimal system (base 10) to signed binary in one's complement representation = 1100 1110