如果要将整数n转换为m,需要改变多少个bit位?
样例
Example 1:
Input: n = 31, m = 14
Output: 2
Explanation:
(11111) -> (01110) there are two different bits.
Example 2:
Input: n = 1, m = 7
Output: 2
Explanation:
(001) -> (111) will change two bits.
注意事项
Both n and m are 32-bit integers.
class Solution {
public:
/**
* @param a: An integer
* @param b: An integer
* @return: An integer
*/
int bitSwapRequired(int a, int b) {
// write your code here
int t = a^b;//异或得到t,然后判断t中有几个1
int flag = 1;
int count = 0;//需要改变的bit数量
while(flag!=0){
if((t&flag)!= 0){
count++;
}
flag<<=1;
}
return count;
}
};```