When you shift with >>> the bit shifted into the high bit, the most significant bit is always zero, therefore the result is always positive, as long as you shift at least one bit.
When shifting an int, the shift operand is mod 32, so x >>> 35 means shift x right, shifting in zeroes, 3 times.
x >>> 32 means shift x right zero times! No shift at all.
When shifting a long however, the shift operand is mod 64.
So, the reason that the value is always positive except when the shift operand is divisible by zero is because when you shift by a multiple of 32, (when shifting an int) you don't shift any bits at all!
If you shifted a long value, and you shifted by 96, you would shift 32 bits! because 96 % 64 is 32.