题目
请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。例如把9表示成二进制是1001,有2为是1。因此如果输入9,该函数输出2.
解法一:
int bit1Cnt(int num) {
int cnt = 0;
unsigned int flag = 0x1;
while (flag) {
if (num & flag) {
++cnt;
}
flag <<= 1;
}
return cnt;
}
解法二:
int bit1Cnt(int num) {
int cnt = 0;
while (num) {
++cnt;
num &= (num - 1);
}
return cnt;
}