我们可以编写一个函数来计算 1 的数量并返回它。该函数将位运算运用于整数,检查每一位是否为 1,将其加到计数器上,最后返回计数器的值。以下是一个 Node JS 函数示例:
function countOnes(num) {
let count = 0;
while (num > 0) {
count += num & 1;
num >>= 1;
}
return count;
}
该函数接受一个无符号整数作为参数,并使用 while 循环来检查每一位是否为 1。在每个迭代中,它通过与 1 进行位运算来检查最后一位是否为 1。如果最后一位为 1,则在计数器上增加 1;否则,它将不会做任何事情。之后,它会将数字右移,忽略掉已经检查过的最后一位。这个过程会重复执行,直到整个数字变为 0。
下面是一个使用该函数的示例:
console.log(countOnes(8)); // 输出 1,因为 8 的二进制表示是 1000
console.log(countOnes(15)); // 输出 4,因为 15 的二进制表示是 1111
我们可以看到,该函数应该正确地计算整数二进制表示中的 1 的数量。