题意:实现两个数相加,但是不是用+或者-
代码实现:
int sum=a;
int carry=b;
while(carry!=0){
int temp=sum^carry;
carry=(sum&carry)<<1;
sum=temp;
}
return sum;
int carry=b;
while(carry!=0){
int temp=sum^carry;
carry=(sum&carry)<<1;
sum=temp;
}
return sum;
解题思路:
不用加号,那只能用&或者^
如上图所示,当不考虑进位时,用^,当考虑进位时,用$,并且左移<<一位得到carry;一直到carry为零,也就是没有进位的相加为止