白菜刷LeetCode记-371. Sum of Two Integers

 

今天的题目是实现不使用 加 或 减 运算符来实现数字相加。不使用这些运算符号来实现加减,那么就只能用位运算了来实现了。

那么该如何实现呢?位运算的使用方法一直没有很好地学习,只能上网搜一下了。最后参考了一下这篇文章:

https://www.jianshu.com/p/c8a0ed93dba4

 

代码如下:

 1 /**
 2  * @param {number} a
 3  * @param {number} b
 4  * @return {number}
 5  */
 6 var getSum = function(a, b) {
 7     while(b!=0){
 8         let aa = a^b;
 9         let bb = (a&b)<<1;
10         
11         a = aa;
12         b = bb;
13     }
14     
15     return a;
16 };

 

posted @ 2018-08-27 10:23  sysu_kww  阅读(91)  评论(0编辑  收藏  举报