剑指offer48---不用加减乘除做加法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zj15527620802/article/details/84997207

题目描述

写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。

这个题考位运算,位运算其实是非常常见的。

 赶紧复习一下位运算的东西吧https://blog.csdn.net/zj15527620802/article/details/80367128

简单的来讲,与运算,二进制相同则为1,不同为0,

                     或运算   二进制有1则为1,没1 则为0、

                     异或运算   二进制相同为0 ,不同为1,常用量判断多个数中只存在一个的数。

public class Solution {
    public int Add(int num1,int num2) {
       while(num2!=0){
           int temp=num1^num2;
           num2=(num1&num2)<<1;
           num1=temp;
       }
        return num1;
    }
}

猜你喜欢

转载自blog.csdn.net/zj15527620802/article/details/84997207
今日推荐