How to derive Binary representation of Negative Numbers
Vineet Sharma
Ranch Hand
Posts: 51
Sridevi Shrikanth
Ranch Hand
Posts: 31
Vineet Sharma
Ranch Hand
Posts: 51
posted 16 years ago
Sridevi,
Thanks for the example. However, doing the same for 192 does not seem to work.
Can you please let me know what you arrive at as the solution.
Thanks,
Vineet
Thanks for the example. However, doing the same for 192 does not seem to work.
Can you please let me know what you arrive at as the solution.
Thanks,
Vineet
Originally posted by Sridevi Shrikanth:
Negative numbers are represented as 2's complement.
Let me take a simple no: 41
Its binary rep is : 00101001
Taking 2's complement is as follows:
Negate the bits and add one to the result:
Negating the bits: 11010110
Add 1 : 11010111
so 41 is 11010111
Hope this helps
Art Metzer
Ranch Hand
Posts: 241
posted 16 years ago
Hi, Vineet.
A little rule that I use when I need to represent negative numbers in binary is
~i = i1.
That is, the bitwise inversion of "i" is equivalent to negative "i" less one.
In your example, you're looking for the binary representation of 192. Since 192 = 1911, the following statement is true:
~191 = 192.
So if we can find the binary representation of 191, then invert all its bits, we will have the binary representation of 192.
This computation requires us to know which data type we are working with: since you didn't specify, I'll assume we are working with ints (32 bits).
191 = 2**7 + 2**5 + 2**4 + 2**3 + 2**2 + 2**1 + 2**0
+191 = 00000000 00000000 00000000 10111111
then
~191 = 11111111 11111111 11111111 01000000 = 192.
I hope this helps, Vineet.
Art
A little rule that I use when I need to represent negative numbers in binary is
~i = i1.
That is, the bitwise inversion of "i" is equivalent to negative "i" less one.
In your example, you're looking for the binary representation of 192. Since 192 = 1911, the following statement is true:
~191 = 192.
So if we can find the binary representation of 191, then invert all its bits, we will have the binary representation of 192.
This computation requires us to know which data type we are working with: since you didn't specify, I'll assume we are working with ints (32 bits).
191 = 2**7 + 2**5 + 2**4 + 2**3 + 2**2 + 2**1 + 2**0
+191 = 00000000 00000000 00000000 10111111
then
~191 = 11111111 11111111 11111111 01000000 = 192.
I hope this helps, Vineet.
Art
Vineet Sharma
Ranch Hand
Posts: 51
posted 16 years ago
Art,
Thanks a lot for your help. Your method makes things very easy.
Thanks again,
Vineet
Thanks a lot for your help. Your method makes things very easy.
Thanks again,
Vineet
Originally posted by Art Metzer:
Hi, Vineet.
A little rule that I use when I need to represent negative numbers in binary is
~i = i1.
That is, the bitwise inversion of "i" is equivalent to negative "i" less one.
In your example, you're looking for the binary representation of 192. Since 192 = 1911, the following statement is true:
~191 = 192.
So if we can find the binary representation of 191, then invert all its bits, we will have the binary representation of 192.
This computation requires us to know which data type we are working with: since you didn't specify, I'll assume we are working with ints (32 bits).
191 = 2**7 + 2**5 + 2**4 + 2**3 + 2**2 + 2**1 + 2**0
+191 = 00000000 00000000 00000000 10111111
then
~191 = 11111111 11111111 11111111 01000000 = 192.
I hope this helps, Vineet.
Art
Happiness is not a goal ... it's a byproduct of a life well lived  Eleanor Roosevelt. Tiny ad:
the new thread boost feature: great for the advertiser and smooth for the coderanch user
https://coderanch.com/t/674455/ThreadBoostfeature
