public class Shift{
public static void shift1(){
int i = 0;
while(-1 << i != 0){
i++
}
}
public void shift2(){
for(int i=-1;i!=0;i<<=1){
System.out.println(i);
}
}
}
第一种方法进入无限循环,第二次迭代31次变为0;为什么java在移位时只考虑右操作数的低5位?