我正在教我自己的Java和我工作通過Java中的思維練習。爲什麼右移運算符產生一個零而不是一個?
在116頁練習11中,您應該右鍵移動整數的整數位置,並用Integer.toBinaryString顯示每個位置。
public static void main(String[] args) {
int i = 8;
System.out.println(Integer.toBinaryString(i));
int maxIterations = Integer.toBinaryString(i).length();
int j;
for (j = 1; j < maxIterations; j++) {
i >>= 1;
System.out.println(Integer.toBinaryString(i));
}
在解決引導的輸出是這樣的:
1000
1100
1110
1111
當我運行這段代碼我得到這個:
1000
100
10
1
這到底是怎麼回事。數字是否被切斷?
我正在使用jdk1.6.0_20 64位。本書使用jdk1.5 32bit。
您的結果對於簡單地右移數字是正確的行爲。 「解決方案」應該說明什麼,我不明白。 – zerm 2010-06-09 16:39:17