Author |
Message |
Voltemand11
|
Posted: Thu Sep 23, 2010 9:12 pm Post subject: Question about 2's complement system |
|
|
I'm doing a first year university assignment, and one of the questions says "Convert the negative 12 bit binary integer -110110110100 to its 2?s complement form and assume you are storing it in a 16 bit binary representation.". I know that in 2's complement form if the number starts with a 0 it is positive and if it starts with a 1 it is negative. I was just wondering if I could simply change the -110110110100 to 1110110110100 with the 1 in front to represent the negative symbol and change it to 1000110110110100 since it is being stored in 16 bits, or if I have to convert the 110110110100 to a positive base 10 number and put the negative symbol in front of it so it would be -3508 in base 10 (I just used a number base calculator to get the 3508), and then convert that number into 2's complement form. It's mildly confusing to me, so any help would be greatly appreciated. Thanks. |
|
|
|
|
|
Sponsor Sponsor
|
|
|
Tony
|
Posted: Fri Sep 24, 2010 12:33 am Post subject: Re: Question about 2's complement system |
|
|
Voltemand11 @ Thu Sep 23, 2010 9:12 pm wrote: I know that in 2's complement form if the number starts with a 0 it is positive and if it starts with a 1 it is negative.
While true, there's more to it than that. What's the decimal value of 1000,0000 (two's complement, 8 bit integer).
Hint: it's not -0. http://en.wikipedia.org/wiki/Two's_complement |
Tony's programming blog. DWITE - a programming contest. |
|
|
|
|
Voltemand11
|
Posted: Fri Sep 24, 2010 8:46 am Post subject: Re: Question about 2's complement system |
|
|
Well I know the largest positive signed integer in 8 bits is 0111 1111, which is 127. If I convert that to a negative 2's complement integer it is 1000 0001 which is -127, so 1000 0000 would be -128. |
|
|
|
|
|
Tony
|
Posted: Fri Sep 24, 2010 11:29 am Post subject: Re: Question about 2's complement system |
|
|
Right. Which should answer
Voltemand11 @ Thu Sep 23, 2010 9:12 pm wrote: I was just wondering if I could simply change the -110110110100 to 1110110110100 with the 1 in front to represent the negative symbol and change it to 1000110110110100 |
Tony's programming blog. DWITE - a programming contest. |
|
|
|
|
Voltemand11
|
Posted: Fri Sep 24, 2010 12:57 pm Post subject: Re: Question about 2's complement system |
|
|
Okay, so if I write 0110110110100 to denote +3508 in base 10, it's in 13 bits. I need to convert it to 2's complement to get the negative binary representation. If I use the rule where you start at the right of the binary number and go until you reach the first 1 and then flip every number after that, I get 1001001001100 which is -3508. But how do I put that into 16 bits? |
|
|
|
|
|
Tony
|
Posted: Fri Sep 24, 2010 5:13 pm Post subject: Re: Question about 2's complement system |
|
|
Voltemand11 @ Fri Sep 24, 2010 12:57 pm wrote: it's in 13 bits
Perhaps this is the point where you want to make it 16 bits long. |
Tony's programming blog. DWITE - a programming contest. |
|
|
|
|
Voltemand11
|
Posted: Fri Sep 24, 2010 5:15 pm Post subject: Re: Question about 2's complement system |
|
|
Voltemand11 wrote:
But how do I put that into 16 bits?
I'm just not sure how to do that. Can I just add zeros after the 1 denoting the negative until there is 16 bits? |
|
|
|
|
|
Tony
|
Posted: Fri Sep 24, 2010 7:18 pm Post subject: Re: Question about 2's complement system |
|
|
Voltemand11 @ Fri Sep 24, 2010 12:57 pm wrote: +3508 in base 10, it's in 13 bits.
The number is positive.
You can't just add 0s to two's complement, as we've already established with
0000,0000
1000,0000
example. |
Tony's programming blog. DWITE - a programming contest. |
|
|
|
|
Sponsor Sponsor
|
|
|
Voltemand11
|
Posted: Sat Sep 25, 2010 7:47 am Post subject: Re: Question about 2's complement system |
|
|
Okay, I think I've found the solution. In 16 bits +3508 would be 0000110110110100. If I convert it to -3508 it would be 1111001001001100. Thanks for your help, it was greatly appreciated! |
|
|
|
|
|
|