剑指offer—二进制中1的个数

来源:互联网 发布:遥感大数据的特点 编辑:程序博客网 时间:2024/06/06 18:53

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

使用位运算符来处理,n & (n - 1)相当于将二进制中的n的最右边的1转换为0,反复重复,直到最后n完全转变为0

java

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


原创粉丝点击