#一次位翻转定义为将数字x二进制中的一个位进行翻转操作,即将0变成 1,或者将1变成0。要求实现一个函数,函数包含两个整数参数 start和 goal,请你返回将 start转变成 goal的最少位翻转次数。
#翻转操作就是如果两个位不一样,只要反转一次,因此用异或运算符,进行计算,返回的值不同为1,相同为0,将所有1的值全部累计就算反转次数
int getCount(int x){
int sum=0;
while(x){
sum+=(x&1);
x>>=1;
}
return sum;
}
int minBitFlips(int start,int goal){
return getCount(start^goal);
}