来自剑指Offer
题目描述
写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
代码解析:
//不用+ - * /做加法运算
//涉及位运算和逻辑运算,联想电路实验的所用公式
function Add(num1, num2)
{
while(num1) {
let item = num2;
num2 = num1^num2;//不考虑进位的加法
num1 = (num1&item)<<1;//计算进位的值,直到变为0,即不再进位时,表示得到了结果
}
return num2;
}
console.log(Add(10,12));
想完这道题,就回想起了大二大三的电路实验,经常需要使用位运算和逻辑运算设计加法器等。