所以我讀的「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