题目:
写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
思路:
public class Solution{ public int Add(int num1,int num2) { int result; int ans; do{ result = num1 ^ num2;//求异或,即各位值 ans = (num1 & num2) << 1;//求与再进1位,即进位值 num1 = result; num2 = ans;//重复前两步 }while(ans!=0);//直到进位为0,结束 return result; } } /*无进位和运算就是按位异或结果,进位就是与运算结果但是需要左移一位,因为进位影响下一位的运算。 所以s = a + b,其实就是无进位和+进位的结果。*/