The idea is easy to understand, you should use `>>`

to get the newest value, if the value is an odd number, `count += 1`

, and `number = number - 1`

to make it even until to `0`

.

```
class Solution(object):
def hammingDistance(self, x, y):
"""
:type x: int
:type y: int
:rtype: int
"""
z, count = x ^ y, 0
if z == 0:
return 0
elif z % 2 == 0:
return self.cal(z, count)
else:
count += 1
return self.cal(z, count)
def cal(self, z, count):
while z > 0:
z >>= 1
if z % 2 != 0:
count, z = count + 1, z - 1
return count
```