Difference between revisions of "Negative Numbers"
(→Revision Questions) |
(→Revision Questions) |
||
Line 61: | Line 61: | ||
<quiz display=simple> | <quiz display=simple> | ||
− | { True or false, the biggest number we can make in twos compliment binary is 128 | + | { |
+ | True or false, the biggest number we can make in twos compliment binary is 128 | ||
| type="()" } | | type="()" } | ||
-true | -true | ||
Line 67: | Line 68: | ||
||We cannot make 128 in twos compliment, as the first bit is equal to -128. If we add up every bit after that, we would only be able to reach 127. | ||We cannot make 128 in twos compliment, as the first bit is equal to -128. If we add up every bit after that, we would only be able to reach 127. | ||
− | { What is the difference between the two methods for calculating negative binary values? | + | { |
+ | What is the difference between the two methods for calculating negative binary values? | ||
| type="()" } | | type="()" } | ||
- One involves inverting the bits, one does not | - One involves inverting the bits, one does not | ||
Line 76: | Line 78: | ||
|| In method 1, you must invert all the bits and add 1 to the rightmost digit ; in method 2, you keep the rightmost one, and then invert the rest. | || In method 1, you must invert all the bits and add 1 to the rightmost digit ; in method 2, you keep the rightmost one, and then invert the rest. | ||
− | { What is -34 in 8-bit twos complement binary? | + | { |
+ | What is -34 in 8-bit twos complement binary? | ||
| type="()" } | | type="()" } | ||
Line 86: | Line 89: | ||
|| Next, we should calculate what +38 is in binary. This would be 00100010. We can invert the bits to get 11011110 | || Next, we should calculate what +38 is in binary. This would be 00100010. We can invert the bits to get 11011110 | ||
− | { What is the Number range of 8 bit twos compliment in denary? | + | { |
+ | What is the Number range of 8 bit twos compliment in denary? | ||
| type="()" } | | type="()" } | ||
Line 98: | Line 102: | ||
{ | { | ||
− | |type="{}"} | + | | type="{}"} |
What is the 8-bit twos compliment number 10010110 in denary? | What is the 8-bit twos compliment number 10010110 in denary? | ||
{ -106 } | { -106 } | ||
Line 105: | Line 109: | ||
{ | { | ||
− | |type="{}"} | + | | type="{}"} |
What is the 8-bit twos compliment number 01110101 in denary? | What is the 8-bit twos compliment number 01110101 in denary? | ||
{ 117 } | { 117 } | ||
Line 112: | Line 116: | ||
{ | { | ||
− | |type="{}"} | + | | type="{}"} |
What does 'msb' stand for? Please format your answer solely in lowercase, and check your spelling. | What does 'msb' stand for? Please format your answer solely in lowercase, and check your spelling. | ||
{ most significant bit } | { most significant bit } | ||
− | { Which position does the msb hold? | + | { |
+ | Which position does the msb hold? | ||
| type="()"} | | type="()"} | ||
- The middle | - The middle |
Revision as of 10:39, 20 September 2017
Two's Complement
Two's Complement uses a similar number system to binary except the msb or left hand bit is a negative value, meaning for 8 bit two's complement it would be -128 instead of 128 like it is in regular 8bit binary.
-128 64 32 16 8 4 2 1
We can see that a 1 in the msb position, or the position of -128 would result in the binary number being negative as the other bits 64-1 only total 127. This means that even if there was a 1 in every position a two's complement number of 11111111 in binary would equal -1.
this means that in two's complement if the msb is a 0 the number is positive and if it is a 1 the number is negative.
Therefore we know that the smallest possible value in 8bit two's complement binary is 10000000 = -128 and the largest value is 01111111 = +127.
Method 1
Two's Complement can be used to convert binary numbers from positive to negative, to do this we need to:
1) Write the number is its equivalent positive binary form 2) Add 0's to the number to make it 8 bit 3) Invert each bit, changing 0's to 1's and 1's to 0's 4) Add 1 to the number to make it a two's complement number
For example, represent -41 in two's complement form:
First calculate +41 in binary using your preferred method
41= 32+0+8+0+0+1 = 101001
Then add 0's to make it 8 bit. 00101001
Then Invert the bits. 11010110.
Then Add 1 to the number. 11010110+1= 11010111.
To check our answer we can convert the number to denary, remembering that the msb represent -128.
11010111 = -128+64+16+4+2+1 = -41
Method 2
There is one other method for representing numbers in two's complement form, without using calculations. To do this we need to:
1) Write the number is its equivalent positive binary form 2) Add 0's to the number to make it 8 bit 3) Starting from the right and going left find the first 1 and keep it 4) Invert each bit after, changing 0's to 1's and 1's to 0's, but don't invert the 1 you kept or any 0's to the right of it
For example, represent -46 in twos complement:
First calculate +46 in binary using your preferred method
46= 32+0+8+4+2+0 = 101110
Then add 0's to make it up to 8bit
Then find the first one and keep it 00101110
Then invert the bits excluding the 1 you kept and all 0's to the right of it. 11010010
To check our answer we can convert the number to denary, remembering that the msb represent -128.
-128+64+16+2= -46