鑑於以下代碼:位移問題
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