65-不用加减乘除做加法
小于 1 分钟
写一个函数,求两个整数之和,要求在函数体内不得使用 “+”、“-”、“*”、“/” 四则运算符号。
只能使用位运算了。
public int add(int a, int b) {
int carry = 0;
do{
int sum = a ^ b; // 可以实现相加的结果,但是会忽略进位
carry = (a & b) << 1; // 都是1的位会产生进位
a = sum;
b = carry;
}while(carry != 0);
return a;
}