python程序请编写一个函数,输入一个整数,输出该数二进制表示中1的个数。例:9的二进制表示为1001,有2位是1,所以函数返回2。
时间: 2024-02-13 12:04:11 浏览: 19
可以使用位运算来实现,具体方法为将输入的整数不断右移一位,每次将最低位与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')
```
这种方法比较简单,但是效率较低,不适合处理大量数据。
相关问题
输入一个整数,输出其二进制中1的个数
您好,对于您的问题,我可以提供以下代码:
```python
def count_bits(n):
count = 0
while n:
count += n & 1
n >>= 1
return count
```
这个函数接收一个整数作为参数,然后使用位运算来计算其二进制中1的个数。
python给一个整数a,数出a在二进制表示下1的个数,并输出。(定义一个函数)
这个问题需要定义一个函数,输入一个整数a,输出a在二进制表示下的个位数,并输出该数。函数的实现可以如下:
def binary(a):
digit = bin(a)[-1]
print(a, "在二进制下个位数为", digit)
return digit
# 测试
binary(10)