美文网首页lintcode
181. 将整数A转换为B

181. 将整数A转换为B

作者: 和蔼的zhxing | 来源:发表于2017-11-16 01:00 被阅读7次

    如果要将整数A转换为B,需要改变多少个bit位?
    如:
    如把31转换为14,需要改变2个bit位。

    (31)10=(11111)2
    
    (14)10=(01110)2
    

    很简单,逐位做异或就可以了,然后统计1的个数,当然统计1的个数这就是另外一个题了,365.
    code:

    int bitSwapRequired(int a, int b) {
            int res=a^b;
            int num=0;
            for(int i=0;i<32;i++)
            {
                if(res>>i&1)          //统计1的个数
                num++;
            }
            return num;
            // write your code here
        }
    

    over

    相关文章

      网友评论

        本文标题:181. 将整数A转换为B

        本文链接:https://www.haomeiwen.com/subject/ptukvxtx.html