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. Continue reading...