思路:定义n表示1的个数,一个二进制数按位遍历一遍,并且每一位按位与1,结果为1,则n加1,输出n即为结果。
代码:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
int num = 7;
int count = 0;
int i = 0;
for (i = 0; i < 32; i++)
{
if ((num >> i) & 1 == 1)
{
count++;
}
}
printf("%d ", count);
system("pause");
return;
}