题目:写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
思路:第一步,只做各位相加不进位(异或运算)。第二步:做进位(与运算,再向左移动一位)。第三:把前面两个数相加(重复上述两个过程,直到不产生进位时为止)。
代码:
public class Solution { public int Add(int num1,int num2) { while(num2!=0){ int temp = num1^num2; num2 = (num1&num2)<<1; num1 = temp; } return num1; } }