#include<stdio.h>
int main()
{
int n;
scanf_s("%d", &n);
//方法一,要将n转变为无符号数,否则负数不适合
/*unsigned int m = (unsigned int)n;
int count = 0;
while (m )
{
if (m % 2==1)
{
count++;
}
m = m / 2;
}
printf("%d", count);*/
//方法二:效率低
/*int count = 0;
for (int i = 0; i < 32; i++)
{
if (((n >> i) & 1) == 1)
{
count++;
}
}
printf("%d", count);*/
//方法三
int count = 0;
while (n)
{
n = n & n - 1;
count++;
}
printf("%d\n", count);
return 0;
}
统计一个整数二进制中1的个数
最新推荐文章于 2024-09-12 13:19:42 发布