当前位置: 面试刷题>> 位和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,并右移整数来逐个检查每一位。
- 对于大整数,这种方法是有效的,但在某些情况下,可能需要考虑性能优化,例如使用内置函数或位操作技巧来加速处理。
- 码小课网站中有更多关于算法和数据结构的内容分享给大家学习,可以深入学习更多高效的编程技巧和算法思想。