1. 程式人生 > >劍指offer48---不用加減乘除做加法

劍指offer48---不用加減乘除做加法

題目描述

寫一個函式,求兩個整數之和,要求在函式體內不得使用+、-、*、/四則運算子號。

這個題考位運算,位運算其實是非常常見的。

 趕緊複習一下位運算的東西吧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;
    }
}