输入一个数,判断该整数的二进制中含有多少个‘1’
思路:按位与

#include<stdio.h>
int main (void)
{
    int n,count=0;
    scanf("%d",&n);
    while(n)
    {
        count++;
        n=n&(n-1);
    }
    printf("%d",count);
    return 0;
}

由这道题联想判断一个整数是否为二的N次方
思路:按位与
//注释:如果该数为2的次方,输出yes,否则输出no.

#include<stdio.h>
int main (void)
{
    int n,m;
    scanf("%d",&n);
    m=n&(n-1);
    if(m==0)
    printf("yes");
    else
    printf("no");
    return 0;
}