查找数N二进制中1的个数(JS版)

//比较最低位是否为1,复杂度O(logn),仅适合正数,当是负数,将出现死循环

function getOne(n){

    var c = 0;

    while(n){

        if(n&1){

            c ++;

        }

        n >>= 1;

    }

    console.log(c);

}



function getOne(n) {

  var c = 0;

  for (var i = 1; i; i <<= 1) {

    if (i & n) {

      c++;

    }

  }

  console.log(c);

}



//快速去掉最高位1

function getOne(n){

    var c = 0;

    while(n){

        n = n &(n - 1);

        c++;

    }

    console.log(c);

}

 

你可能感兴趣的:(二进制)