您的位置:首页 > 其它

lintcode-将整数A转换为B-181

2015-09-12 23:09 183 查看
如果要将整数A转换为B,需要改变多少个bit位?

样例

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

(31)10=(11111)2
(14)10=(01110)2
class Solution {
public:

int bitSwapRequired(int a, int b) {
int tmp=a^b; //异或运算,对应位的值相同异或为零,不同为一,两数有多少位不同tmp中就有多少个一
int ret=0;
while(tmp){ //转换成求tmp“1”的个数
tmp&=(tmp-1);
++ret;
}
return ret;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: