题目描述
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
分析:在32位中,二进制表示数字1的方式为 00000000 00000000 00000000 00000001,从左边第一位开始,一位一位的找,每一次&1,若结果为1,则这一位为1,反之则为0。
class Solution {
public:
int NumberOf1(int n) {
int count=0;
for(int i=0;i<32;i++){
if(((n>>i)&1)==1){
count++;
}
}
return count;
}
};