Shifting operations never shift more than 31 bits(in case of int) or 63 bits(in case of long). If the RHS operand is more than 31/63, then it is reduced to RHS % 32/64.
So in the following case, no shifting happens since 32 % 32 is zero,so the value still is 1 after the shift.
int i = 1;
i = i >> 32;
In case of i << 33, what really happens is i << 1, so if the value of i was 1 before the shifting, it becomes 2 after the one bit left shifting.
HTH
------------------
Velmurugan Periasamy
Sun Certified
Java Programmer
----------------------
Study notes for Sun Java Certification
http://www.geocities.com/velmurugan_p/
------------------------------------------------------------------------------------<BR>Velmurugan Periasamy<BR>Sun Certified Java Programmer for Java 2 Platform<BR>Sun Certified Web Component Developer for J2EE platform<BR>Sybase Certified EAServer Developer (similar to jCert level 3)<BR>------------------------------------------------------------------------------------<BR>Study notes for Sun Java Certification<BR><A HREF="http://www.geocities.com/velmurugan_p/" TARGET=_blank rel="nofollow">http://www.geocities.com/velmurugan_p/</A><BR>------------------------------------------------------------------------------------