Javascript Tilde & Two’s complement

First of all, you need to realize that ~ is the bitwise flip operator, which is not the same as the negate operator -. ~ does only the bitwise flipping, but the negate operator - does bitwise flipping and add one (for integers).

As you’ve explained, if yo want to go from a postive number n to -n using the two complement method you bitwise flip/not n and add 1. ~n is just the bit-wise not meaning that ~n=-n-1.

For instance:

5               = 0000 0101
Flipped (~5)    = 1111 1010

So, which number does 1111 1010 represent? Since the first digit is a 1 we know it’s a negative value. To find which value, do

-(flip(1111 1010) + 1) =
-(0000 0101 + 1)
-(0000 0110) =
-6

Leave a Comment