181. 将整数A转换为B

2018-09-04 13:17:58 浏览数 (1)

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

代码语言:javascript复制
(31)10=(11111)2

(14)10=(01110)2

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

代码语言:javascript复制
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
    }

0 人点赞