如下代码,将1024,按照i从0到1024,依次右移:
public static void main(String[] args) throws Exception {
for (int i = 0; i < 1024; i++) {
System.out.println(i+"-"+(1024 >> i));
}
}
运行结果:
0-1024
1-512
2-256
3-128
4-64
5-32
6-16
7-8
8-4
9-2
10-1
11-0
// 12 到 31 位 都是0,不过32开始又恢复1024了
32-1024
33-512
34-256
35-128
36-64
37-32
38-16
39-8
40-4
41-2
42-1
43-0
// 44 到 63 ,0
64-1024
65-512
66-256
67-128
68-64
69-32
70-16
71-8
72-4
73-2
74-1
75-0
76-0
Why?