371. 两整数之和(JavaScript)

不使用运算符 + 和-,计算两整数a 、b之和。

示例:
若 a = 1 ,b = 2,返回 3。


思路:

不使用 + 和 -, 那就要站在二进制的角度来考虑使用与或非、异或等相关操作。

详细按位操作请看另一篇文章:JavaScript按位相关操作

/**
 * @param {number} a
 * @param {number} b
 * @return {number}
 */
var getSum = function(a, b) {
  var temp;
  while (a !== 0) {
    temp = (a & b) << 1;  // a & b 得到所有需要进位的地方,左移一位完成进位。
    b = a ^ b;            // a ^ b 得到a与b不一样的地方,即不需要进位的地方
    a = temp;
  }
  return b;
};

 

全部评论

相关推荐

07-18 14:03
门头沟学院 Java
点赞 评论 收藏
分享
Yki_:你要算时间成本呀,研究生两三年,博士三四年,加起来就五六年了,如果你本科去腾讯干五年,多领五年的年薪,加上公司内涨薪,可能到时候十五年总薪资也跟博士差不多
点赞 评论 收藏
分享
07-18 18:45
已编辑
中山职业技术学院 Java
投递TP-LINK等公司7个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务