leetcode 191:位1的个数

题目:

算法思想:n = n & (n-1),多少次迭代使得n为0,就有多少个1。举个例子,n是二进制数100,n-1就是011,与一次刚好为0。同理n是1100,一次操作变成了1000,两次就是0。

代码:

    int hammingWeight(uint32_t n) {
        int result = 0;
        while(n != 0)
        {
            n = n & (n-1);
            result++;
        }
        return result;
    }
发布了137 篇原创文章 · 获赞 19 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/wh_computers/article/details/99622428
今日推荐