从JLS的15.19节开始:
如果左侧操作数的提升类型为int,则仅 将右侧操作数的最低5位用作移位距离
。就像右侧操作数受到&掩码值的按位逻辑AND运算符(第15.22.1节)一样0x1f(0b11111)。因此,实际使用的移位距离始终在范围内0 to 31,包括端点。
强调我的。所以:
x >>> n
等效于:
x >>> n & 0x1f // or x >>> n % 32
因此,
x >>> 32等效于
x >>> 32 & 0x1f<==>
x >>> 0==
x。
因此,根据经验 法则 ,每当将数字乘以
32(
intis
32 bits)的倍数时,您都将获得相同的值。



