//计算整数中二进制1的个数(采用位运算)
#include<stdio.h>
//向左进行移位
int NumberOfOneInBinary(int n){
unsigned int flag=1;
int count=0;
while(flag){
if(n&flag) count++;
flag=flag<<1;
}
return count;
}
//
int NumberOfOneInBinary_1(int n){
int count=0;
while(n){
count++;
n=(n-1)&n;
}
return count;
}
void main(){
printf("%3d\n",NumberOfOneInBinary(0));
printf("%3d\n",NumberOfOneInBinary_1(0));
printf("%3d\n",NumberOfOneInBinary(1));
printf("%3d\n",NumberOfOneInBinary_1(1));
printf("%3d\n",NumberOfOneInBinary(0x7FFFFFFF));
printf("%3d\n",NumberOfOneInBinary_1(0x7FFFFFFF));
printf("%3d\n",NumberOfOneInBinary(0xFFFFFFFF));
printf("%3d\n",NumberOfOneInBinary_1(0xFFFFFFFF));
printf("%3d\n",NumberOfOneInBinary(0x80000000));
printf("%3d\n",NumberOfOneInBinary_1(0x80000000));
}
NumberOfOneInBinary
最新推荐文章于 2023-10-29 06:15:11 发布