## How to convert signed integers from decimal system to binary in two's complement representation

### Follow the steps below to convert a signed base 10 integer number to binary two's complement:

- 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. STOP when the last quotient of the operations is 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 have to have 4, 8, 16, 32, 64, ... bit length (power of 2) - if needed, fill in '0' bits in front (to the left) of the base 2 number obtained above, up to the right length, under these circumstances:

a) if the length of the base 2 number is different of a power of 2 and/or

b) if the first bit of the base 2 number is '1';

This way the first bit (leftmost) will always be '0', correctly representing a positive number. - 5. To get the negative integer number representation in binary one's complement, replace all '0' bits with '1' and all '1' bits with '0'.
- 6. To get the negative integer number, binary two's complement representation, add 1 to the number obtained above.

### Example: convert negative number -60 from decimal system (base ten) to binary two's complement:

- 1. Start with the positive version of the number: |-60| = 60
- 2. Divide repeatedly 60 by 2, keeping track of each remainder:
iteration division quotient remainder 1 60 : 2 = 30 **0**2 30 : 2 = 15 **0**3 15 : 2 = 7 **1**4 7 : 2 = 3 **1**5 3 : 2 = 1 **1**6 1 : 2 = 0 **1**Last quotient is ZERO => FULL STOP - 3. Construct the base 2 representation of the positive number, by taking all the remainders starting from the bottom of the list constructed above:

60_{(10)}= 11 1100_{(2)} - 4. Length of base 2 representation is 6, so the positive binary computer representation of a signed binary will take 8 bits (the least power of 2 higher than 6) - add '0' in front of the base 2 number, up to the required length:

60_{(10)}= 0011 1100_{(2)} - 5. To get the negative integer number representation in binary one's complement, replace all '0' bits with '1' and all '1' bits with '0':

!(0011 1100) = 1100 0011 - 6. To get the negative integer number, binary two's complement representation, add 1 to the number obtained above:

-60_{(10)}= 1100 0011 + 1 = 1100 0100