# 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 15 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 15 years ago

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

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

posted 15 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 = -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