输入:一个整数
输出:该整数二进制中1的个数
eg:9:1001,个数为2
思路:把一个整数减去1再与原整数做与运算,会把最右边的1变为0
public class NumberOfOneInBinary {
// 剑指offer第十题,二进制中1的个数
public int numberOfOne(int n){
int count = 0;
while (n != 0){
n = n & (n-1);
count ++;
}
return count;
}
}
二进制中1的计数方法
本文介绍了一种高效计算整数在二进制表示下1的个数的方法。通过不断将整数与其减一后的结果进行按位与运算,每次都将最右侧的1变为0,直到整数变为0为止,以此来计数二进制表示中1的个数。
303

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



