来源于网络
1.不用加减乘除法做加法:
异或操作可以看作是没有进位的加法:a^b,进位可以通过逻辑与来检测到:a&b
public int getSum(int a, int b){
int sum = a; int carry;
while(b != 0){
sum = a ^ b;
carry = (a & b) << 1;
a = sum; b = carry;
}
return sum;
}
来源于网络
异或操作可以看作是没有进位的加法:a^b,进位可以通过逻辑与来检测到:a&b
public int getSum(int a, int b){
int sum = a; int carry;
while(b != 0){
sum = a ^ b;
carry = (a & b) << 1;
a = sum; b = carry;
}
return sum;
}