operações de bit java >>> shift
Porque se
int x = -1 // binary: 11111111111111111111111111111111
x = x >>> 31;
nós temos 00000000000000000000000000000001
mas se
int x = -1
x = x >>> 32;
temos 11111111111111111111111111111111 (novamente -1)
mas não 00000000000000000000000000000000?