191 Number of 1 bits
Concept: 不斷將n&1,如果結果是1,表示n的LSB是1,就要把答案加1。直到n為0表示所有是1的bit都已經被找過了。
Note: 要注意的是,這題需要考慮int可能是unsigned,所以要用>>>來shift bit,而且不能把while的條件設成n>0。
Java程式碼如下:
public static int hammingWeight(int n) {
int ones = 0;
while(n!=0) {
ones = ones + (n & 1);
n = n>>>1;
}
return ones;
}