美文网首页面试
n&=(n-1)的解析

n&=(n-1)的解析

作者: 烟花繁江尘辗 | 来源:发表于2020-05-25 16:47 被阅读0次
    • 式子n&=(n-1)同理为n=n&(n-1)

      &表示“与”,例如n=10110 ,则n-1=10101

      相与之后:10100

    • n&(n-1)所表示的含义为:将最后一位1变成0

    例题:

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

    ​ 示例 1:

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

    ​ 解题:

    class Solution {
    public:
        int hammingWeight(uint32_t n) {
            int num = 0;
        while(n > 0){
            n &= (n - 1);
            ++num;
        }
        return num;
    }
    }
    

    相关文章

      网友评论

        本文标题:n&=(n-1)的解析

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