题目描述
写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
解题思路—使用异或和与运算符:题目要求不能使用四则运算符号,但是要求和,肯定要使用别的运算符,这里要想到两个运算符:异或和与。
两个数异或:相当于每一位相加,并不考虑进位。
两个数相与,并左移一位:相当于求得进位。
然后将进位与异或的结果相加,直至进位为0,即得求和结果。
Java解题—使用异或和与运算符
public class Solution {
public int Add(int num1,int num2) {
while(num2!=0){
int sum = num1 ^ num2; // 每一位相加,不考虑进位
num2 = (num1 & num2) << 1; // 计算进位
num1 = sum;
}
return num1;
}
}