題目描述
輸入一個整數,輸出該數二進制表示中1的個數。其中負數用補碼錶示。
基礎回顧
在做之前,我們可以先回顧一下補碼,反碼的基本知識。
思路解析
一個二進制數n,將該n減去1之後再與n做與運算,會將該二進制n最右邊一個1變成0。所以二進制n有多少個1,就可以進行多少次該操作。
代碼實現
public class Solution {
public int NumberOf1(int n) {
int count = 0;
while(n!=0){
count++;
n = n & (n-1);
}
return count;
}
}
運行效果如下: