• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Tim Cooke
  • Campbell Ritchie
  • paul wheaton
  • Ron McLeod
  • Devaka Cooray
Sheriffs:
  • Jeanne Boyarsky
  • Liutauras Vilda
  • Paul Clapham
Saloon Keepers:
  • Tim Holloway
  • Carey Brown
  • Piet Souris
Bartenders:

How to derive Binary representation of Negative Numbers

 
Ranch Hand
Posts: 51
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
How can arrive at the binary representation of -192?
I understand how this works for positive numbers, but negative numbers are confusing.
Any feedback will be appreciated.
Thanks,
Vineet
 
Ranch Hand
Posts: 31
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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
 
Vineet Sharma
Ranch Hand
Posts: 51
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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

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


 
Ranch Hand
Posts: 241
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi, Vineet.
A little rule that I use when I need to represent negative numbers in binary is
~i = -i-1.
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 = -191-1, 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
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Art,
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 = -i-1.
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 = -191-1, 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


 
Consider Paul's rocket mass heater.
reply
    Bookmark Topic Watch Topic
  • New Topic