题目描述
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
思路
/*
* 思路:就是很简单的左移动操作,挨个查,注意int有32位,注意右移操作会让负数引入1,所以不要用右移动
*/
class Solution {
public:
int NumberOf1(int n) {
if(n == 0) return 0;
int cnt;
while(n){
if((n & 0x80000000) == 0x80000000){
cnt++;
}
n = n << 1;
}
return cnt;
}
};