您的位置:首页 > 其它

LintCode Flip Bits 将整数A转换为B

2015-06-25 14:04 435 查看
如果要将整数A转换为B,需要改变多少个bit位?

样例

如把31转换为14,需要改变2个bit位。

(31)10=(11111)2

(14)10=(01110)2

挑战

你能想出几种方法?

Determine the number of bits required to flip if you want to convert integer n to integer m.

Example

Given n = 31 (11111), m = 14 (01110), return 2.

Note

Both n and m are 32-bit integers.

class Solution {
/**
*@param a, b: Two integer
*return: An integer
*/
public static int bitSwapRequired(int a, int b) {
int c = a ^ b;
int count = 0;
if (c < 0) {
count++;
c = Integer.MIN_VALUE ^ c;
}
while(c != 0) {
count += c%2;
c = c/2;
}
return count;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: