Bit Difference

Write a Java method that will return the number of bits that will need to be changed in order to convert an integer, X, into another integer, Y and vice versa. The method should accept two different integers as input. For example, if your method is passed the integers 12 and 16 then your method should return a 3 .

Answer: XOR(^ in java) and then count.

class BitDifference{ public static void main(String args[]){ if(args.length != 2){ System.out.println("Please input 2 differnet numbers"); return; } int number1 = Integer.valueOf(args[0]); int number2 = Integer.valueOf(args[1]); System.out.println("Number1: " + number1 + " binary " + Integer.toBinaryString(number1)); System.out.println("Number2: " + number2 + " binary " + Integer.toBinaryString(number2)); int numberXOR = number1 ^ number2; System.out.println("numberXOR: " + numberXOR + " binary " + Integer.toBinaryString(numberXOR)); int numberOfBits = 0; while(numberXOR != 0){ if((numberXOR & 1) == 1){ numberOfBits++; } numberXOR = numberXOR >> 1; } System.out.println("difference of Bits " + numberOfBits); }}