程序填空题:进制数中1的个数
完善程序,使之能够高效判断出整数(计算机二进制存储模式)中含有1的个数。比如:6--..00110 16--..0010000,分别是2个1和1个1。
```
#include
int numOf1(int x){
int num=0;
while(@@[x](1)){
putchar('.');
@@[ x=x&(x-1);](4) num++;
}
return num;
}
int main(){
int x;
for(int i=0;i<4;i++)
{scanf("%d",&x); printf("%d\n",numOf1(x));}
return 0;
}
```
答案:
第1空:x
第2空: x=x&(x-1);
```
#include
int numOf1(int x){
int num=0;
while(@@[x](1)){
putchar('.');
@@[ x=x&(x-1);](4) num++;
}
return num;
}
int main(){
int x;
for(int i=0;i<4;i++)
{scanf("%d",&x); printf("%d\n",numOf1(x));}
return 0;
}
```
答案:
第1空:x
第2空: x=x&(x-1);