【刷算法】不用加減乘除怎麼作加法?

題目描述

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

分析

既然不讓使用加減乘除符號,只能考慮位運算了。

0+1=1;0+0=0;1+1=10

觀察到可使用異或,並且要考慮到進位的問題。code

代碼實現

function Add(num1, num2)
{
    var sum = num1;
    while(num2 !== 0){
        sum = num1 ^ num2;
        num2 = (num1 & num2) << 1;
        num1 = sum;
    }
    return sum;
}
相關文章
相關標籤/搜索