Skip to content

05.06. Convert Integer

Description

Write a function to determine the number of bits you would need to flip to convert integer A to integer B.

Example1:




 Input: A = 29 (0b11101), B = 15 (0b01111)



 Output: 2



Example2:




 Input: A = 1,B = 2



 Output: 2



Note:

  1. -2147483648 <= A, B <= 2147483647

Solutions

Solution 1: Bit Manipulation

We perform a bitwise XOR operation on A and B. The number of $1$s in the result is the number of bits that need to be changed.

The time complexity is $O(\log n)$, where $n$ is the maximum value of A and B. The space complexity is $O(1)$.

1
2
3
4
5
class Solution:
    def convertInteger(self, A: int, B: int) -> int:
        A &= 0xFFFFFFFF
        B &= 0xFFFFFFFF
        return (A ^ B).bit_count()
1
2
3
4
5
class Solution {
    public int convertInteger(int A, int B) {
        return Integer.bitCount(A ^ B);
    }
}