371. Sum of Two Integers, 不用加减乘除运算符计算两数之和

原创 2017年09月05日 16:19:33

rt.

思考:在计算5 + 9时,首先不进位的话 5 + 9 = 45 + 9的进位为1,然后和就是1 * 10 + 4 = 14。同理放到二进制中也可以采用这样的方法。

代码如下;

class Solution {
public:
    int getSum(int a, int b) {
        return bitAdd(a, b);
    }
    
    int bitAdd(int a, int b) {  
        int nCarry = a & b;      // 进位  
        int nSumNoCarry = a ^ b; // 非进位  
        if (nCarry != 0)  
            return BitAdd(nSumNoCarry, nCarry << 1);  
        else  
            return nSumNoCarry;  
    }  
};

若要计算a = b * 3,可将a = b << 1 + b,然后运用上述bitAdd()函数即可。


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

【一天一道LeetCode】#371. Sum of Two Integers

一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder‘s Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目...

LeetCode 第 371 题 (Sum of Two Integers)

LeetCode 第 371 题 (Sum of Two Integers) Calculate the sum of two integers a and b, but you are not ...

LeetCode - 371. Sum of Two Integers

在不准使用+和-的情况下实现两个整数的加法,那么肯定要用到位运算了。我们考虑位运算加法的四种情况: 0 + 0 = 0 1 + 0 = 1 0 + 1 = 0 1 + 1 = 1(with c...

两个常见位操作面试题 不用加减乘除运算符计算两数之和及a=b*3

《两个常见位操作面试题不用加减乘除运算符计算两数之和及a=b*3》地址:http://blog.csdn.net/morewindows/article/details/8710737转载请标明出处,...

【leetcode74】Sum of Two Integers(不用+,-求两数之和)

题目描述:不用+,-求两个数的和原文描述:Calculate the sum of two integers a and b, but you are not allowed to use the o...

【计算两数之和】不使用加减乘除

计算两数之和不论在计算机中还是生活中,都不算难(即使某些数据过大)。但是如何能更高效的计算时一个难题,或者说在计算机内部是如何解析两个数之间的加法的,这就成了一个可以探讨的问题。   当然我们很了解...

371. Sum of Two Integers(C++)

题目:不用加减乘除法实现加法运算如果不能用加减乘除运算,那还能有什么运算方法呢?当然了,还有亲切的位运算。解题思路: 和平时做加减法一样,先各个位相加,然后得到的数再相加,注意:期间要考虑进位情况...

Leetcode 371. Sum of Two Integers

371. Sum of Two Integers Total Accepted: 8805 Total Submissions: 17071 Difficulty: Easy Calc...

371. Sum of Two Integers

(有什么问题欢迎和博主讨论!!!)原题链接:https://leetcode.com/problems/sum-of-two-integers/ 这是一道简单的考查位运算的题目(还是能考一下程序员对...

【题解】Leetcode.371. Sum of Two Integers

Calculate the sum of two integers a and b, but you are not allowed to use the operator + and -. ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)