【位运算】面试题 05.06. 整数转换

面试题 05.06. 整数转换
整数转换。编写一个函数,确定需要改变几个位才能将整数A转成整数B。

示例1:

输入:A = 29 (或者0b11101), B = 15(或者0b01111)
 输出:2

示例2:

 输入:A = 1,B = 2
 输出:2

提示:

A,B范围在[-2147483648, 2147483647]之间

题解:

class Solution {
    public int convertInteger(int A, int B) {
        int z = A ^ B; // 异或一下
        int mask = 1;
        int count = 0;
        for (int i=0;i<32;++i) {
            if ((z&mask) != 0) {
                count++;
            }
            mask <<=1;
        }
        return count;
    }
}

猜你喜欢

转载自blog.csdn.net/wjavadog/article/details/126558547