题目描述
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
思路:相与到0为止,就可以。相与就相当于-1操作
class Solution {
public:
int NumberOf1(int n) {
if(!n) return 0;
int count = 0;
//while(n) {
// n = n & (n-1);
// count++;
// }
do{count++;}
while(n=(n&(n-1)));
return count;
}
};