题目描述:
输入一个大于0的整数,求其二进制表示中1的个数,例如,输入3,它的二进制表示为11,其中1的个数为2,输出2。
输入:输入一个大于0的整数
输出:二进制中1的个数
样例输入:
3
样例输出:
2
-----------------------------------------------------------------
function findNumberOf1(num) {
var count = 0;
var n = num;
while(n!==0) {
count++;
n = (n-1)&n
}
console.log(count)
}
findNumberOf1(7)// 3
那为什么 n = (n-1)&n 就可以实现了呢,可以参考这篇文章,写的很详细 :n&(n-1)位运算的妙用