Two's Complement: Integer -> Binary: -40 000 112 Convert the Integer Number to a Signed Binary in Two's Complement Representation. Write the Base Ten Decimal System Number as a Binary Code (Written in Base Two)
Signed integer number -40 000 112(10) converted and written as a signed binary in two's complement representation (base 2) = ?
1. Start with the positive version of the number:
|-40 000 112| = 40 000 112
2. Divide the number repeatedly by 2:
Keep track of each remainder.
We stop when we get a quotient that is equal to zero.
- division = quotient + remainder;
- 40 000 112 ÷ 2 = 20 000 056 + 0;
- 20 000 056 ÷ 2 = 10 000 028 + 0;
- 10 000 028 ÷ 2 = 5 000 014 + 0;
- 5 000 014 ÷ 2 = 2 500 007 + 0;
- 2 500 007 ÷ 2 = 1 250 003 + 1;
- 1 250 003 ÷ 2 = 625 001 + 1;
- 625 001 ÷ 2 = 312 500 + 1;
- 312 500 ÷ 2 = 156 250 + 0;
- 156 250 ÷ 2 = 78 125 + 0;
- 78 125 ÷ 2 = 39 062 + 1;
- 39 062 ÷ 2 = 19 531 + 0;
- 19 531 ÷ 2 = 9 765 + 1;
- 9 765 ÷ 2 = 4 882 + 1;
- 4 882 ÷ 2 = 2 441 + 0;
- 2 441 ÷ 2 = 1 220 + 1;
- 1 220 ÷ 2 = 610 + 0;
- 610 ÷ 2 = 305 + 0;
- 305 ÷ 2 = 152 + 1;
- 152 ÷ 2 = 76 + 0;
- 76 ÷ 2 = 38 + 0;
- 38 ÷ 2 = 19 + 0;
- 19 ÷ 2 = 9 + 1;
- 9 ÷ 2 = 4 + 1;
- 4 ÷ 2 = 2 + 0;
- 2 ÷ 2 = 1 + 0;
- 1 ÷ 2 = 0 + 1;
3. Construct the base 2 representation of the positive number:
Take all the remainders starting from the bottom of the list constructed above.
40 000 112(10) = 10 0110 0010 0101 1010 0111 0000(2)
4. Determine the signed binary number bit length:
The base 2 number's actual length, in bits: 26.
A signed binary's bit length must be equal to a power of 2, as of:
21 = 2; 22 = 4; 23 = 8; 24 = 16; 25 = 32; 26 = 64; ...
The first bit (the leftmost) indicates the sign:
0 = positive integer number, 1 = negative integer number
The least number that is:
1) a power of 2
2) and is larger than the actual length, 26,
3) so that the first bit (leftmost) could be zero
(we deal with a positive number at this moment)
=== is: 32.
5. Get the positive binary computer representation on 32 bits (4 Bytes):
If needed, add extra 0s in front (to the left) of the base 2 number, up to the required length, 32.
40 000 112(10) = 0000 0010 0110 0010 0101 1010 0111 0000
6. Get the negative integer number representation. Part 1:
To write the negative integer number on 32 bits (4 Bytes),
as a signed binary in one's complement representation,
... replace all the bits on 0 with 1s and all the bits set on 1 with 0s.
Reverse the digits, flip the digits:
Replace the bits set on 0 with 1s and the bits set on 1 with 0s.
!(0000 0010 0110 0010 0101 1010 0111 0000)
= 1111 1101 1001 1101 1010 0101 1000 1111
7. Get the negative integer number representation. Part 2:
To write the negative integer number on 32 bits (4 Bytes),
as a signed binary in two's complement representation,
add 1 to the number calculated above
1111 1101 1001 1101 1010 0101 1000 1111
(to the signed binary in one's complement representation)
Binary addition carries on a value of 2:
0 + 0 = 0
0 + 1 = 1
1 + 1 = 10
1 + 10 = 11
1 + 11 = 100
Add 1 to the number calculated above
(to the signed binary number in one's complement representation):
-40 000 112 =
1111 1101 1001 1101 1010 0101 1000 1111 + 1
Number -40 000 112(10), a signed integer number (with sign), converted from decimal system (from base 10) and written as a signed binary in two's complement representation:
-40 000 112(10) = 1111 1101 1001 1101 1010 0101 1001 0000
Spaces were used to group digits: for binary, by 4, for decimal, by 3.
Convert signed integer numbers from the decimal system (base ten) to signed binary in two's complement representation
How to convert a base 10 signed integer number to signed binary in two's complement representation:
1) Divide the positive version of number repeatedly by 2, keeping track of each remainder, till getting a quotient that is equal to 0.
2) Construct the base 2 representation by taking the previously calculated remainders starting from the last remainder up to the first one, in that order.
3) Construct the positive binary computer representation so that the first bit is 0.
4) Only if the initial number is negative, switch all the bits from 0 to 1 and from 1 to 0 (reversing the digits).
5) Only if the initial number is negative, add 1 to the number at the previous point.