小编典典

用Python方式计算以2为底的尾随零的数量

python

我正在寻找一种Python方式来计算正整数的二进制表示形式中的尾随零数n(这将指示最大幂2n而无余数)。

一个简单的解决方案:

def CountZeros(n):
    c = 0
    while (n % 2) == 0:
        n /= 2
        c += 1
    return c

但是,为了以更Python化的方式进行操作,我认为我可以利用:

  • bin(n)[2:],它给出的二进制表示形式 n
  • bin(n)[:1:-1],它给出了的反向二进制表示形式 n

因此,我的问题可以简化为对字符串中的尾随零进行计数。

有任何单一陈述的方式可以做到这一点吗?

我的最终目标是一种Python的方法,用于计算其最大幂2n而无余数,因此不通过计数字符串中的尾随零来实现此目的的任何方法也应受到赞赏。


阅读 358

收藏
2021-01-20

共1个答案

小编典典

您可以使用str.rstrip

def trailing(s):
    return len(s) - len(s.rstrip('0'))
2021-01-20