遇到好几次了,代码中出现的,之前没见过还挺绕的。
#include <stdio.h>
void main(){
int a=273;
int count=0;
while(a){
a=a&(a-1);
count++;
}
printf("%d\n",count);
}
本文介绍了一段C语言代码,该代码的功能是计算一个整数变量二进制表示中1的个数。通过不断将变量与其减1后的结果进行按位与运算,直至变量变为0,每完成一次运算则计数加一。
遇到好几次了,代码中出现的,之前没见过还挺绕的。
#include <stdio.h>
void main(){
int a=273;
int count=0;
while(a){
a=a&(a-1);
count++;
}
printf("%d\n",count);
}
318
1246

被折叠的 条评论
为什么被折叠?
