我正在教我自己的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