首页 > 其他 > 详细

二进制中 1 的个数

时间:2019-06-17 15:11:12      阅读:99      评论:0      收藏:0      [点我收藏+]

问题:

输入一个整数,输出该数二进制表示中 1 的个数。

JavaScript 代码:

/**
 * @param {number} n - a positive integer(这里也说了输入是正整数。。。)
 * @return {number}
 */
var hammingWeight = function(n) {
    let res = 0;
    let x = n.toString(2);
    x = x.split(‘‘);
    for(let i=0;i<x.length;i++){
        if(x[i]==‘1‘){
            res++;
        }
    }
    return res;
};

 这个代码有问题,当输入的整数为负数时,输出结果是错的。。

适用于正负整数的方法还是基于位运算:

首先把 n 与 1 做与运算,判断 n 的最低位是不是 1。然后,把 1 左移一位,再和 n 做与运算,就能判断 n 的次低位是不是 1 ......这样不断左移,就能判断 n 的其中一位是不是 1.

function NumberOf1(n)
{
    // write code here
    let count = 0;
    let flag = 1;
    while(flag){
        if(n&flag){
            count++;
        }
        flag=flag<<1;
    }
    return count;
}

 

二进制中 1 的个数

原文:https://www.cnblogs.com/ZLDJ-15-516/p/11039459.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!