2021/03/22 每日一题 位1的个数

LeetCode上位1的个数,简单难度,记录下解题思路

传入一个32位的二进制数,之后要求这个数内1的个数,当然可以转成字符串之后用循环或者正则表达式来匹配获取,这里使用下位运算,平时正好用得少

已知传入的数总是32位二进制串,用一个掩码从最后一位开始依次比较当前位是否为1,为1则记录下来,不为就跳过,最后掩码还要移动,进行下次计算

var hammingWeight = function(n) {
    // 计数位
    let count = 0;
    // 掩码
    let mask = 1;
    // 从最后一位开始比较
    for(let i = 0;i < 32;i++){
        if((n & mask) != 0){
            count++;
        }
        // 掩码位移
        mask <<= 1;
    }
    return count;
};
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容