python程序请编写一个函数,输入一个整数,输出该数二进制表示中1的个数。例:9的二进制表示为1001,有2位是1,所以函数返回2。
时间: 2024-02-13 20:04:11 浏览: 118
可以使用位运算来实现,具体方法为将输入的整数不断右移一位,每次将最低位与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和0的个数。 (PYTHON实现提示:用bin函数)。 输入格式: 输入一个十进制的正整数。 输出格式: 输出二进制数中1和0的个数。中间用1个空格分开。 输入样例1: 37 输出样例1: 3 3 输入样例2: 0 输出样例2: 0 1。python
好的,那么我们可以使用 Python 的内置函数 bin() 将输入的十进制数转换为二进制数,并统计其中 1 和 0 的个数。
以下是 Python 代码实现:
```python
n = int(input())
binary = bin(n)[2:] # 将十进制数转换为二进制数,[2:] 表示去掉前缀 '0b'
count_1 = binary.count('1') # 统计二进制数中 1 的个数
count_0 = binary.count('0') # 统计二进制数中 0 的个数
print(count_1, count_0)
```
输入样例1:
```
37
```
输出样例1:
```
3 3
```
输入样例2:
```
0
```
输出样例2:
```
0 1
```
输入一个整数,输出其二进制中1的个数
您好,对于您的问题,我可以提供以下代码:
```python
def count_bits(n):
count = 0
while n:
count += n & 1
n >>= 1
return count
```
这个函数接收一个整数作为参数,然后使用位运算来计算其二进制中1的个数。
阅读全文