第一步:两个整数相异或,得到的是相加的位,如5-101与7-111,异或得到010,十进制是2,相当于个位的数值;
第二部:两个整数相与,再左移一位,得到的是进位,101&111 = 101,左移一位是1010,相当于十进制的10;
第三部:进位不为0,则重复上述操作。
public class Solution {
public int Add(int num1,int num2) {
while(num2 != 0){
int tmp = num1^num2;
num2 = (num1&num2)<<1;
num1 = tmp;
}
return num1;
}
}