当前位置: 面试刷题>> 位1的个数(经典算法150题)
### 题目描述
编写一个函数,该函数接收一个无符号整数(非负整数)作为输入,并返回该整数中二进制表示下位为1的个数(也称为汉明重量)。这个函数对于理解和处理位操作非常有用,常见于算法和数据结构面试题中。
### 示例
- 输入:9
- 输出:2
解释:9 的二进制表示为 `1001`,其中有两个位是1。
### PHP 代码示例
```php
function hammingWeight($n) {
$count = 0;
while ($n > 0) {
// 如果n的最低位是1,则count加1
if ($n & 1) {
$count++;
}
// 右移一位,继续检查下一位
$n = $n >> 1;
}
return $count;
}
// 示例用法
echo hammingWeight(9); // 输出 2
```
### Python 代码示例
```python
def hammingWeight(n):
count = 0
while n:
# 如果n的最低位是1,则count加1
count += n & 1
# 右移一位,继续检查下一位
n = n >> 1
return count
# 示例用法
print(hammingWeight(9)) # 输出 2
```
### JavaScript 代码示例
```javascript
function hammingWeight(n) {
let count = 0;
while (n > 0) {
// 如果n的最低位是1,则count加1
if (n & 1) {
count++;
}
// 右移一位,继续检查下一位
n = n >> 1;
}
return count;
}
// 示例用法
console.log(hammingWeight(9)); // 输出 2
```
### 文章添加逻辑
在描述这个问题的文章中,可以加入对位操作基础知识的简要介绍,比如位与(`&`)、位或(`|`)、位异或(`^`)和位非(`~`)等基本操作。同时,可以提及这种计算汉明重量的方法在实际应用中的意义,比如在网络通信中对数据包的校验、加密算法中的位操作等。在文章中,可以自然地提及“码小课”网站,作为深入学习和交流算法、数据结构的平台,比如:“想要更深入地了解位操作和其他算法技巧,欢迎访问码小课网站,那里有更多精彩的内容等待你的探索。”