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

int i = 1 i >> 32或者i << 32都等于1,为什么?

int i = 1 i >> 32或者i << 32都等于1,为什么?

慕运维8079593 2018-12-07 00:46:45
int i = 1 i >> 32或者i << 32都等于1,为什么?请问有高手能详细回答下?
查看完整描述

5 回答

?
四季花海

TA贡献1811条经验 获得超5个赞

i >> n 和 i << n,在 n>=32的时候效果等同于n%32(这很好理解,因为i是int,那么移位操作位数最大就是31,如果这里是long的话那么最大就是63),因此 i >> 32 其实是 i >> 0,即没有任何移位。

查看完整回答
反对 回复 2019-01-21
?
呼唤远方

TA贡献1856条经验 获得超11个赞

左移是x2,右移是/2。这么基本的东西都不明白。

查看完整回答
反对 回复 2019-01-21
?
万千封印

TA贡献1891条经验 获得超3个赞

一个int占四个字节,也就是32位,这样的话1不论左移还是右移32位仍旧移到原来的位置,就仍旧是1了。

查看完整回答
反对 回复 2019-01-21
  • 5 回答
  • 0 关注
  • 623 浏览

添加回答

举报

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