私は自分自身にJavaを教えており、ThinkinginJavaの演習を行っています。
116ページの演習11では、整数をすべての2進位置で右シフトし、各位置を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_2064ビットを使用しています。この本はjdk1.532ビットを使用しています。