js求一个整数二进制表示中1的个数

题目描述:

输入一个大于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)位运算的妙用

    原文作者:颖_恋
    原文地址: https://blog.csdn.net/line233/article/details/100525833
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞