python程序请编写一个函数,输入一个整数,输出该数二进制表示中1的个数。例:9的二进制表示为1001,有2位是1,所以函数返回2。
时间: 2024-02-13 10:04:11 浏览: 111
求二进制数中1的个数
可以使用位运算来实现,具体方法为将输入的整数不断右移一位,每次将最低位与1相与,判断是否为1,如果是则计数器加1,直到整数变为0。
具体实现代码如下:
```python
def count_ones(n):
count = 0
while n:
count += n & 1
n >>= 1
return count
```
其中,`n & 1`表示将n的最低位与1相与,如果结果为1,则说明最低位为1,计数器加1。`n >>= 1`表示将n右移一位。
另外,也可以使用Python内置函数`bin()`将整数转换为二进制字符串,然后计算字符串中1的个数,代码如下:
```python
def count_ones(n):
return bin(n).count('1')
```
这种方法比较简单,但是效率较低,不适合处理大量数据。
阅读全文