计算一个数二进制有多少个1(最高明的算法)

int count_mun_of_1(int n)
{
    int count = 0;
    while (n)
    {
        n = n & (n - 1);//每次操作后都会少去最右边的一个1
        count++;
    }
    return count;

}

int main()
{
    int num = 0;
    scanf("%d", &num);
    int n = count_mun_of_1(num);
    printf("%d\n", n);
    return 0;
}

你可能感兴趣的:(算法,c语言)