int countBit(int num){
int count = 0;
while(num != 0){
num = num & (num-1);//关键点
count++;
}
return count;
}
解决方法:num & (num-1) 可以每次将最右边的1消去,经过x次运算即可。
本文介绍了一种高效计算整数二进制中1的个数的方法。通过使用位操作技巧,即 num & (num-1),每次迭代都能消除最低位上的1。此方法不仅简单而且效率高。
int countBit(int num){
int count = 0;
while(num != 0){
num = num & (num-1);//关键点
count++;
}
return count;
}
解决方法:num & (num-1) 可以每次将最右边的1消去,经过x次运算即可。

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