Pythonic way to count the number of trailing zeros in base 2

python

Solution

You could use `str.rstrip`:

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

Problem

I'm looking for a Pythonic way to count the number of trailing zeros in the binary representation of a positive integer `n` (which will indicate the highest power of `2` which divides `n` without remainder). A simple solution: ``` def CountZeros(n): c = 0 while (n % 2) == 0: n /= 2 c += 1 return c ``` But in order to do it in a more Pythonic manner, I think that I can make use of: - `bin(n)[2:]`, which gives the binary representation of `n` - `bin(n)[:1:-1]`, which gives the reversed binary representation of `n` So my question can be reduced to counting the number of trailing zeros in a string. Is there any single-statement way to do this? My ultimate goal is a Pythonic way for computing the highest power of `2` which divides `n` without remainder, so any ways to do this not by counting the trailing zeros in a string are also appreciated.

Original source

Related problems