//int cut(unsigned int a)
//{
// int count = 0;
// while (a)
// {
// if (a % 2 == 1)
// {
// count++;
// }
// a = a / 2;
// }
// return count;
//}
//int cut(int a)
//{
// int count = 0;
// int i = 0;
// for (i = 0; i < 32; i++)
// {
// if ( ((a >> i) & 1) == 1)
// {
// count++;
// }
// }
// return count;
//}
int jingjian(int a)
{
int count = 0;
while (a)
{
a = a & (a - 1);
count++;
}
return count;
}
int main()
{
int a = 0;
scanf("%d", &a);
printf("count=%d\n", jingjian(a));
return 0;
}
求一个数字中二进制(补码)1的个数(三种方法)
最新推荐文章于 2024-07-12 14:05:04 发布