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

int i = 1 i >> 32或者i << 32都等于1,为什么?请问有高手能详细回答下?

慕运维8079593
浏览 624回答 5
5回答

四季花海

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

呼唤远方

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

万千封印

一个int占四个字节,也就是32位,这样的话1不论左移还是右移32位仍旧移到原来的位置,就仍旧是1了。
打开App,查看更多内容
随时随地看视频慕课网APP