问题:如果要将整数A转换为B,需要改变多少个bit位?
样例
如把31转换为14,需要改变2个bit位。
(31)10=(11111)2
(14)10=(01110)2
public static int bitSwapRequired(int a, int b) {
int count = 0;
for (int num = a ^ b; num != 0; num >>>= 1) {
int i = num & 1;
System.out.println("num=" + num + "&1=" + i);
count += i;
}
return count;
}