剑指offer:计算一个整数,二进制数中1的个数

问题描述:

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

解题思路:

可以与上比他小1的数,当等于0时不进行操作

代码示例:

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

猜你喜欢

转载自blog.csdn.net/qq_40840459/article/details/81006118
今日推荐