题目链接
整数转换
题目描述
注意点
- A,B范围在[-2147483648, 2147483647]之间
解答思路
- 比较A、B每一个数位是否相同,如果不同则res + 1
- 比较每一位的方法是:将数字右移i位,再将其与1进行’&'操作,就可以得到数字在第i个位置的数位
代码
class Solution {public int convertInteger(int A, int B) {int res = 0;for (int i = 0; i < 32; i++) {if ((A & 1) != (B & 1)) {res++;}A >>= 1;B >>= 1;}return res;}
}
关键点
- 位运算的相关操作