关于java中的移位,例如int a=-8;System.out.println(a>>>33);//2147483644System.out.println(a>>>1); //2147483644这里我采用了逻辑右移(无符号右移)为例,对-8进行逻辑右移,移动33位和移动1位的效果是一样的,其原因是移动33位时对其进行取模操作(与32相除的余数),对其余数进行移位,请问Java中这样设计的理由是什么?为什么不是当逻辑右移超过32位时,其结果应该为0,这样不是更符合常理吗?
添加回答
举报
0/150
提交
取消