1. 题目
整数转换。编写一个函数,确定需要改变几个位才能将整数A转成整数B。
示例1:输入:A = 29 (或者0b11101), B = 15(或者0b01111)输出:2示例2:输入:A = 1,B = 2输出:2提示:
A,B范围在[-2147483648, 2147483647]之间
2. 解题
class Solution {
public:int convertInteger(int A, int B) {int s = A^B;//不相同的位为1int count = 0;for(int i = 0; i < 32; ++i){if((s>>i)&1)//每个位移到最右边,跟1与,为1说明不同count++;}return count;}
};