当前位置: 面试刷题>> 位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 ``` ### 文章添加逻辑 在描述这个问题的文章中,可以加入对位操作基础知识的简要介绍,比如位与(`&`)、位或(`|`)、位异或(`^`)和位非(`~`)等基本操作。同时,可以提及这种计算汉明重量的方法在实际应用中的意义,比如在网络通信中对数据包的校验、加密算法中的位操作等。在文章中,可以自然地提及“码小课”网站,作为深入学习和交流算法、数据结构的平台,比如:“想要更深入地了解位操作和其他算法技巧,欢迎访问码小课网站,那里有更多精彩的内容等待你的探索。”
推荐面试题