鉴于以下代码:位移问题
public class Something {
public static void main(String[] args) {
int num = 1;
num <<= 32;
System.out.println(num);
num = 1;
for (int i = 0 ; i < 32; i++)
num <<= 1;
System.out.println(num);
}
}
第一输出(从NUM < < = 32)为1
和(用于环路从)所述第二输出是0。
我不明白它..它对我来说看起来是一样的.. 两种方法都将“1”数字(lsb)移动了32次,结果不同。
任何人都可以解释吗?
在此先感谢。
有关更多详细信息,请参见[JLS 15.19](http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.19)。 – 2013-03-18 19:18:22
@LouisWasserman:是的,正在那里:) – 2013-03-18 19:18:57
完美。非常感谢你。得到它了。 – Rouki 2013-03-18 19:19:30