题目描述
写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
- 思路之前做过,现在学过了计算机组成原理之后这个原理变得更清晰了。其实就是简单模拟计算机内部二进制的两数相加,正好抑或运算是相加不进位的结果,与运算是进位的结果,之后让进位的结果左移再相加来实现“竖式运算”的模拟。没有对溢出做出处理
public class Solution {
public int Add(int num1,int num2) {
int ans = 0;
while(true){
ans = num1 ^ num2;
int temp = num1 & num2;
temp = temp << 1;
num1 = ans;
num2 = temp;
if(temp == 0)
return ans;
}
}
}