当前位置: 面试刷题>> 数1的个数 (经典算法题500道)
### 题目描述补充
**题目:数1的个数(在二进制表示中)**
给定一个非负整数 `n`,你需要计算并返回该整数在二进制表示下数字 `1` 出现的次数。
### 示例
**示例 1**:
```
输入: 8
输出: 1
解释: 8 的二进制是 1000,有 1 个 1。
```
**示例 2**:
```
输入: 11
输出: 3
解释: 11 的二进制是 1011,有 3 个 1。
```
### 解答
#### PHP 示例代码
```php
function hammingWeight($n) {
$count = 0;
while ($n > 0) {
$count += $n & 1;
$n >>= 1; // 右移一位,相当于 n = n / 2,向下取整
}
return $count;
}
// 测试
echo hammingWeight(8); // 输出: 1
echo hammingWeight(11); // 输出: 3
```
#### Python 示例代码
```python
def hammingWeight(n):
count = 0
while n:
count += n & 1
n >>= 1
return count
# 测试
print(hammingWeight(8)) # 输出: 1
print(hammingWeight(11)) # 输出: 3
```
#### JavaScript 示例代码
```javascript
function hammingWeight(n) {
let count = 0;
while (n > 0) {
count += n & 1;
n >>= 1; // 右移一位
}
return count;
}
// 测试
console.log(hammingWeight(8)); // 输出: 1
console.log(hammingWeight(11)); // 输出: 3
```
### 码小课相关内容分享
码小课网站中有更多关于算法和数据结构的内容分享,包括但不限于排序算法、搜索算法、图论算法、动态规划等。此外,还有大量关于编程语言的进阶技巧和实践案例,帮助学习者深入理解并掌握编程技能。无论你是初学者还是有一定基础的程序员,都能在码小课找到适合自己的学习内容。