所以我读的“Java:初学者指南”并没有这样的代码:的Java:左移
class ShowBits{
int numbits;
ShowBits(int n){
numbits = n;
}
void show(long val){
long mask = 1;
mask<<=numbits-1;
int spacer=0;
for(;mask!=0;mask>>>=1){
if(val & mask) != 0) System.out.print("1");
else System.out.print("0");
spacer++;
if((spacer % 8)==0){
System.out.print(" ");
spacer=0;
}
}
System.out.println();
}
}
我对为什么这个人的代码不能正常工作见过this question。
不过,我不明白的首字母左移的目的是
左移位1到适当的位置
我甚至不知道这意味着什么,并为什么你需要numbits - 1
- 然后在for循环右移。我一直认为正确的转变是让代码放在1
和0
之间,但我不明白左移的目的。有人可以解释吗?也许有一个例子。
要明白,你需要一步通过与调试方法,*以二进制*查看数字。当你看到个别位时,应该清楚发生了什么。 – hyde