Because there are 32 bits in an
int variable only five least significant bits are used from the shift amount operand. That's a shift amount of 0 to 31 bits. A 32, 64, 96, ... shift amount is taken as a 0 bit shift.
A 33, 65, 97, ... shift amount is taken as a 1 bit shift.
An n bit shift amount is always taken as n modulo 32 (for an
int).
So -1 >>> 32 is -1 shifted by no bits, that is, leave it alone.
For shifting
longs use 64 bits in the above explanation.