一、看 i 能和 i-1 与多少次
#include<stdio.h>
#include<stdlib.h>
int countbit(int i)
{
int c = 0;
while (i)
{
i &= (i - 1);
c++;}
return c;
}
int main()
{
int i = 254;
int c=countbit(i);
printf("%d\n", c);
system("pause");
return 0;
}
二、
int count(int i)
{
int c = 0;
while(i)
{
if (i % 2 == 1)
{
c++;
}
i /= 2;
}
return c;
}
int main()
{
int i = 10;
int c = count(i);
printf("%d\n", c);
system("pause");
return 0;
}
三
int count(int i)
{
int c = 0;
while (i)
{
if (i&1)
{
c++;
}
i>>=1;
}
return c;
}
int main()
{
int i = 10;
int c = count(i);
printf("%d\n", c);
system("pause");
return 0;
}