美文网首页
【LeetCode】位1的个数

【LeetCode】位1的个数

作者: MyyyZzz | 来源:发表于2019-04-05 00:03 被阅读0次

    题目描述:

    编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)

    示例 1:
    输入:00000000000000000000000000001011
    输出:3
    解释:输入的二进制串 00000000000000000000000000001011 中,共有三位为 '1'。

    解题思路:

    用按位与来做,1&n返回n的最末尾值

    代码:

    class Solution {
    public:
        int hammingWeight(uint32_t n) {
            uint32_t a = 1;
            int i = 32;
            int ans = 0;
            while(i--)
            {
                if(n&a) ans++;
                n>>=1;
            }
            return ans;
        }
    };
    

    相关文章

      网友评论

          本文标题:【LeetCode】位1的个数

          本文链接:https://www.haomeiwen.com/subject/lsgciqtx.html