本题为剑指offer面试题47
牛客网测试地址:https://www.nowcoder.com/questionTerminal/59ac416b4b944300b617d4f7f111b215
- 时间限制:1秒空间限制:32768K
写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
Java代码:
package go.jacob.day518;
/*
* 对数字做运算,除了四则运算之外,也只剩下位运算了
*/
public class Demo2 {
public int Add(int num1, int num2) {
int sum = num1 ^ num2;
int carry = (num1 & num2) << 1;
while (carry != 0) {
//进位
int tmpCarry = (sum & carry) << 1;
//不进位的结果,如果进位为0,循环结束
sum = sum ^ carry;
carry=tmpCarry;
}
return sum;
}
}