# Bit Shift Operator Signed Left Shift

Sandy Lee

Greenhorn

Posts: 18

posted 15 years ago

Hi! All can anyone explain how

- 5 << 29 is giving a positive number of 1610612736

Is << not a signed left shift and should therefore give a

negative number?

I am not able to manually determine th above result.

Can anyone please explain??!!

- 5 << 29 is giving a positive number of 1610612736

Is << not a signed left shift and should therefore give a

negative number?

I am not able to manually determine th above result.

Can anyone please explain??!!

Udayan Naik

Ranch Hand

Posts: 135

posted 15 years ago

Hi Sandy.The number -5 will be represented as 1111 1111 ...1011.After shifting to the left 29 times,the 0 will be in the MSB position.Now the number will be 0110 0000 ...0000 ;a positive number.The value will be (2 raised to 30 + 2 raised to 29) ie 1610612736.

Try doing the mathematics with paper and pencil,and u will get it.

[This message has been edited by Udayan Naik (edited January 19, 2001).]

Try doing the mathematics with paper and pencil,and u will get it.

[This message has been edited by Udayan Naik (edited January 19, 2001).]

Udayan Naik<BR>Sun Certified Programmer for the Java 2 Platform