# Simple question about signed integer multiplication

If you have a signed integer int x = any

And then state that x < 0

Is the following statement true or false?

((x*2) < 0)


The answer is false, which seems counter intuitive. Is it because X can be any negative value, it can also be a very big negative value which will overflow if multiplied by two.

So if I have the number -30768 1000011111010000 which multiplied by 2 is -61536 11111111111111110000111110100000

But because we only have 16 bits the last 16 are taken resulting in 0000111110100000 which is positive.

Is this the correct explanation? I can't seem to find a good source

So x is an unsigned negative value of k bits. The smalles possible value of x is representet by the 2's Complement number 1000....0. If you multiply this number by 2 (or logical shifting it by 1, which is equivalent) you end up with the number 0000...0 which is 0. And therefore (x*2)<0 is false.