为了账号安全,请及时绑定邮箱和手机立即绑定

关于java的逻辑移位和算数移位

关于java的逻辑移位和算数移位

一只甜甜圈 2019-03-29 23:18:02
关于java中的移位,例如int a=-8;System.out.println(a>>>33);//2147483644System.out.println(a>>>1); //2147483644这里我采用了逻辑右移(无符号右移)为例,对-8进行逻辑右移,移动33位和移动1位的效果是一样的,其原因是移动33位时对其进行取模操作(与32相除的余数),对其余数进行移位,请问Java中这样设计的理由是什么?为什么不是当逻辑右移超过32位时,其结果应该为0,这样不是更符合常理吗?
查看完整描述

1 回答

?
潇湘沐

TA贡献1816条经验 获得超6个赞

你一次移位超过类型的最大长度以得到0,为什么不直接置为0呢?


查看完整回答
反对 回复 2019-04-17
  • 1 回答
  • 0 关注
  • 464 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信