如标题,按理论上来说,1 >>> 32应该是0才对啊,为什么会是1 >>> 0的结果,求解惑!
1 >>> 32
1 >>> 0
移位运算符约简其右侧的操作数,当左侧操作数是int类型时,右侧以32取模;当左侧是long类型时,右侧以64取模。
所以32位右移等于右移0
解惑:《The Java ® Virtual Machine Specification Java SE 8 Edition》书中 6.5 节 iushr 指令集,notes 有说明。