Complete the function to determine the number of bits required to convert integer `A` to integer `B` (where `A` and `B` >= 0)

The upper limit for `A` and `B` is 2^(16), `int.MaxValue` or similar.

For example, you can change 31 to 14 by flipping the 4th and 0th bit:
```
 31  0 0 0 1 1 1 1 1
 14  0 0 0 0 1 1 1 0
---  ---------------
bit  7 6 5 4 3 2 1 0
```
Thus `31` and `14` should return `2`.

Difficulty: introductory

Starter code:

def convert_bits(a, b):
	

Solutions:
def convert_bits(a,b):
    return bin(a^b).count("1")

def convert_bits(a, b):
    return f'{a^b:b}'.count('1')

def convert_bits(a, b):
    return str(bin(a ^ b)).count('1')

def convert_bits(a, b):
    return format(a ^ b, 'b').count('1')

def convert_bits(a, b):
    difference=bin(a^b)[2:]
    return difference.count("1")


def convert_bits(a, b):
    return list(bin(a^b)).count('1')

binary = lambda x : bin(x)[2:].zfill(32)

def convert_bits(a, b):
    a, b = binary(a), binary(b)
    return sum(a[i] != b[i] for i in range(32))

def convert_bits(a, b):
    n = a ^ b
    c = 0
    while n:
        c += n & 1
        n >>= 1
    return c

def convert_bits(a, b):
  A = f'{abs(a):040b}'
  B = f'{abs(b):040b}'
  diffs = 0
  for i, j in zip(A, B):
    if i != j:
      diffs+=1
  return diffs


def countSetBits(n):
  count = 0
  while n:
      count += n & 1
      n >>= 1
  return count


def convert_bits(a, b):
  return countSetBits(a^b)