How to count the number of bits to be flipped to convert N1 to N2 in Java

1 Answer

0 votes
public class MyClass {
    static int flipped_count(int a, int b) {
        int n = a ^ b;
        int count = 0;
        
        while (n > 0) {
            count++;
            n &= (n - 1);
        }
        return count;
    }
    public static void main(String args[]) {
        int a = 7, b = 10;
        
        System.out.println("a = "+String.format("%4s", Integer.toBinaryString(a)).replace(' ','0'));
        System.out.println("b = " + Integer.toBinaryString(b));
        System.out.println("a ^ b = " + Integer.toBinaryString(a ^ b));
        
        System.out.println(flipped_count(a, b));
    }
}



/*
run:
 
a = 0111
b = 1010
a ^ b = 1101
3
 
*/

 



answered Dec 26, 2021 by avibootz
edited Dec 26, 2021 by avibootz
...