题目描述:
解题要点 :
- 两个数二进制位相异或后的结果,是两数相加的结果(不考虑进位)
- 二进制位相与后,左移一位的结果是两数相加后的结果(只考虑进位)
代码:
public class Solution {
public int Add(int num1,int num2) {
while (num2!=0){
int sum=num1^num2;//两数相加不考虑进位
int carry=(num1&num2)<<1;
num1=sum;
num2=carry;
//再让刚刚不考虑进位的和加上进位,循环直至进位为0时即可
}
return num1;
}
}
- over