当前位置: 面试刷题>> 位和2位字符 (经典算法题500道)


首先,我会尝试补充完整这道题目描述,然后分别给出PHP、Python和JavaScript的示例代码。 **题目描述**: 编写一个函数,该函数接受一个整数作为输入,并返回该整数的二进制表示中所有1位(即二进制中的位和)的数量。 **示例**: - 输入:9 - 输出:2 解释:9的二进制表示为1001,其中包含两个1。 **PHP 示例代码**: ```php function countBitsInBinary($num) { $count = 0; while ($num > 0) { $count += $num & 1; // 检查最低位是否为1 $num = $num >> 1; // 右移一位 } return $count; } echo countBitsInBinary(9); // 输出:2 ``` **Python 示例代码**: ```python def count_bits_in_binary(num): count = 0 while num > 0: count += num & 1 # 检查最低位是否为1 num = num >> 1 # 右移一位 return count print(count_bits_in_binary(9)) # 输出:2 ``` **JavaScript 示例代码**: ```javascript function countBitsInBinary(num) { let count = 0; while (num > 0) { count += num & 1; // 检查最低位是否为1 num = num >> 1; // 右移一位 } return count; } console.log(countBitsInBinary(9)); // 输出:2 ``` **额外提示**: - 这种方法通过不断检查整数的最低位是否为1,并右移整数来逐个检查每一位。 - 对于大整数,这种方法是有效的,但在某些情况下,可能需要考虑性能优化,例如使用内置函数或位操作技巧来加速处理。 - 码小课网站中有更多关于算法和数据结构的内容分享给大家学习,可以深入学习更多高效的编程技巧和算法思想。
推荐面试题