This week's book giveaway is in the Big Data forum. We're giving away four copies of Elasticsearch in Action and have Radu Gheorghe & Matthew Lee Hinman on-line! See this thread for details.

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

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

Joined: Dec 30, 2000
Posts: 51

posted

0

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

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

Joined: Dec 30, 2000
Posts: 51

posted

0

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