用python编写 给定一个a 数出a在二进制表示下1的个数
时间: 2023-11-27 13:52:20 浏览: 68
可以使用Python内置的bin()函数将整数转为二进制字符串,再遍历该字符串统计其中1的个数即可。具体代码如下:
```python
def count_ones(a):
# 将整数a转为二进制字符串
bin_str = bin(a)[2:]
# 遍历二进制字符串,统计其中1的个数
count = 0
for c in bin_str:
if c == '1':
count += 1
return count
```
使用示例:
```python
a = 23
print(count_ones(a)) # 输出:4
```
解释:23在二进制表示下为"10111",其中有4个1。
相关问题
用函数实现,求一个整数的二进制形式中,有多少个1
可以使用以下函数来计算一个整数的二进制形式中有多少个1:
```python
def count_ones(num):
count = 0
while num != 0:
if num % 2 == 1:
count += 1
num //= 2
return count
```
这个函数使用了一个循环来迭代地将给定的整数除以2,判断余数是否为1,如果是,则将计数器加1。然后继续将整数除以2,直到整数变为0。最后返回计数器的值,即为二进制形式中1的个数。
你可以调用这个函数并传入你想要计算的整数作为参数。例如,要计算整数17的二进制形式中有多少个1,可以这样调用函数:
```python
result = count_ones(17)
print(result) # 输出结果为2
```
希望这能帮到你!如果还有其他问题,请随时提问。
给定一个二进制字符串,例如“10100101”,计算并输出字符串中0的个数以及所有数字之和
算法:
1. 初始化计数器count为0,sum为0。
2. 遍历字符串中的每个字符,如果是'0',则count加1,如果是'1',则将字符转换为数字并加到sum中。
3. 输出count和sum。
Python 代码:
```
s = input() # 输入二进制字符串
count = 0
sum = 0
for c in s:
if c == '0':
count += 1
elif c == '1':
sum += 1
print("Number of zeros:", count)
print("Sum of digits:", sum)
```
示例输出:
```
输入:10100101
输出:Number of zeros: 4
Sum of digits: 5
```