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??!!
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).]
Udayan Naik<BR>Sun Certified Programmer for the Java 2 Platform