如果要将整数A转换为B,需要改变多少个bit位?
样例
如把31转换为14,需要改变2个bit位。
(31)10=(11111)2
(14)10=(01110)2
解题思路:
先将两个数异或得到的二进制数中,1代表需要改变的位,所以题目就变成求一个数的二进制有多少个1。
public class Solution {
/**
* @param a: An integer
* @param b: An integer
* @return: An integer
*/
public int bitSwapRequired(int a, int b) {
// write your code here
int c = a^b;
return Integer.bitCount(c);
}
}
本文介绍了一种计算将一个整数通过位操作转换为另一个整数所需的位变化数量的方法。具体而言,通过异或运算找出两数二进制表示的不同位,再计算这些不同位的数量。
1489

被折叠的 条评论
为什么被折叠?



