求一个整数对应的二进制中的1的个数(位操作)

来源:互联网 发布:下载默默软件 编辑:程序博客网 时间:2024/05/22 00:40
法一:
#include <stdio.h>#include <stdlib.h>int main(){    int number;    int count=0;    scanf("%d",&number);    while(number){        if(number%2==1)            count++;        number/=2;    }    printf("%d\n",count);}
法二:
<pre name="code" class="cpp">#include <stdio.h>#include <stdlib.h>int main(){    int number;    int count=0;    scanf("%d",&number);    while(number){        if(number&1)            count++;        number=number>>1;//如果只写number>>1,number本身不变    }    printf("%d\n",count);}



1 0