题目描述
写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
思路:
先找出两个数的二进制相加不需要进位的位置:a^b
在找出相加需要进位的位置:a&b,然后再左移一位;
现在a+b=(a&b<<1)+a^b;
循环。。。
直到两个数没有a&b<<1==0,此时a^b就是a+b;
public class Q_48 {
public int Add(int num1,int num2) { while (num2!=0) { int temp = num1^num2; num2 = (num1&num2)<<1; num1 = temp; } return num1; }
}