lintcode | 将整数A转换为B, Flip Bits

来源:互联网 发布:淘宝聚划算的报名条件 编辑:程序博客网 时间:2024/05/20 20:20

如果要将整数A转换为B,需要改变多少个bit位?

样例

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

(31)10=(11111)2

(14)10=(01110)2



class Solution {public:    /**     *@param a, b: Two integer     *return: An integer     */    int bitSwapRequired(int a, int b) {        // write your code here        int count = 0;        int c = a ^ b;                                        for(int i = 0; i < 32; i++){//int为32位系统            if((a & 1) != (b & 1)){                count = count + 1;            }            a = a>>1;            b = b>>1;//负数右移,前面补1,可能导致无限loop        }                        return count;    }};


0 0
原创粉丝点击