例如:求解二进制数中的1的个数;(对输入的整数K对1按位与运算,然后再将K向右移一位,循环这样做,知道K为0。),但是有的编译器会自动高位补0;
int GetCount(unsigned int num){
int x = num;
int count = 0;
while(x){
x = x & (x - 1);
++count;
}
return count;
}
int GetCount(unsigned int num){
int x = num;
int count = 0;
while(x){
x = x & (x - 1);
++count;
}
return count;
}