题目描述:
输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示。
知识点:
- 位运算
解题思路:
- 这道题给我们一个数要求我们求其中1的个数
- 我们可以使用&与运算符,其特点是全1为1,见0为0
- 我们使用位运算每次消掉一个1即:n = n & (n - 1)
- 创建一个变量统计最后消掉1的个数便好
解题代码:
function NumberOf1(n)
{
// write code here
let count = 0;
while(n) {
n = n & (n - 1);
count++
}
return count;
}