java 剑指Offer 二进制中1的个数 AC

题目描述

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

public class Solution {
    public int NumberOf1(int n) {
        int count =0;
        boolean flag=true;
        while(flag){
            if(n==0)
                break;

            ++count;

//把一个数减去1,再和原整数相与,就是把该整数最右边的一个1变成0

            n=(n-1)&n;
        }
        return count;
    }
}


猜你喜欢

转载自blog.csdn.net/yang_154116/article/details/79846514