编写函数,求任意整数的二进制形式中最后连续0的个数。
时间: 2023-04-30 08:07:00 浏览: 115
此题要求编写函数,求任意整数的二进制中最后连续0的个数。
代码如下:
```
def trailingZero(n):
count = 0
while n & 1 == 0:
count += 1
n >>= 1
return count
```
其中,n & 1 == 0 判断二进制中最后一位是否为0,如果为0则 count+1 并将 n 右移一位,继续判断下一位,直到最后一位不为0。
例如,当输入整数为12时,其二进制为1100,最后一位连续的0个数为2。运行 trailingZero(12),输出2。
注意,如果输入的整数为0,则输出0,因为其二进制中没有连续的0。
相关问题
用函数实现,求一个整数的二进制形式中,有多少个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
```
希望这能帮到你!如果还有其他问题,请随时提问。
写一个函数求一个整数的二进制形式有多少个1
以下是一个 Python 函数,它可以计算一个整数的二进制形式中包含多少个 1。
```python
def count_ones(n):
count = 0
while n > 0:
if n % 2 == 1:
count += 1
n //= 2
return count
```
该函数首先将计数器 count 初始化为 0。接下来,它使用一个 while 循环,将整数 n 不断除以 2,直到 n 变为 0。在每次循环中,函数检查 n 的最低位是否为 1,如果是,则将计数器 count 加 1。最后,函数返回计数器 count 的值,这个值就是整数 n 的二进制形式中包含的 1 的个数。