剑指offer(七)之二进制中1的个数

来源:互联网 发布:微信营销软件 编辑:程序博客网 时间:2024/05/19 16:27

题目描述
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。

思路分析:
将二进制数n与二进制数n-1进行"逻辑与"运算,可以将二进制数n最右边的1消去。

public class BinaryWorkOut{
public int workout(int n){
int count=0;
while(n!=0){
n=n&(n-1);
count++;
}
return count;
}
}


0 0
原创粉丝点击