描述
輸入一個整數,輸出該數二進制表示中1的個數。其中負數用補碼錶示。
代碼
class Solution {
public:
int NumberOf1(int n) {
int count = 0;
while(n!=0){
count++;
n = n & (n-1);
}
return count;
}
};
心得
這道題的靈魂在於 n = n&(n-1)
這個操作會將n這個二進制中最右邊的1變成0