problem
整数转换。编写一个函数,确定需要改变几个位才能将整数A转成整数B。
solution
思路过程
- 先将两个数进行异或^
- 得到的不同数字与1相遇,得到1次数就加1,0就跳过,右移,然后循环32次
代码
class Solution {
public int convertInteger(int A, int B) {
int C=A^B;
int res=0;
for(int i=0;i<32;++i){
// 这里一定要有一个括号,不然先后运算不一致
if((C&1)==1){
res++;
}
C=C>>1;
}
return res;
}
}
备注
难得自己能想出来,而且一次都能过,开心 o( ̄▽ ̄)ブ,今天给自己加一个🍗