不用加减乘除做加法

题目描述

写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
 
 
 
提交链接:点击
 
 
 
思路:k进制的加法的本质就是每位相加,如果数满k,则进行进位。
 
   1.两个数异或,相当于每一位相加,没有进行进位
   2.两个数相与再左移移位,相当于求得进位。
 
 
代码:
 
//通过异或和与、移位操作
class Solution {
public:
    int Add(int num1, int num2)
    {
        while(num1){
            int temp = num1^num2;
            num1 = (num1&num2)<<1;
            num2= temp;
        }
        return num2;
    }
原文地址:https://www.cnblogs.com/logo-88/p/9937687.html