当前位置: 面试刷题>> 数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 ``` ### 码小课相关内容分享 码小课网站中有更多关于算法和数据结构的内容分享,包括但不限于排序算法、搜索算法、图论算法、动态规划等。此外,还有大量关于编程语言的进阶技巧和实践案例,帮助学习者深入理解并掌握编程技能。无论你是初学者还是有一定基础的程序员,都能在码小课找到适合自己的学习内容。
推荐面试题