不用加减乘除做加法

不用加减乘除做加法

http://www.nowcoder.com/questionTerminal/59ac416b4b944300b617d4f7f111b215

题目:
写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
思路:

public class Solution{
    public int Add(int num1,int num2) {
        int result;
        int ans;
        do{
            result = num1 ^ num2;//求异或,即各位值
            ans = (num1 & num2) << 1;//求与再进1位,即进位值
            num1 = result;
            num2 = ans;//重复前两步
        }while(ans!=0);//直到进位为0,结束
        return result;
    }
}
/*无进位和运算就是按位异或结果,进位就是与运算结果但是需要左移一位,因为进位影响下一位的运算。
所以s = a + b,其实就是无进位和+进位的结果。*/
全部评论

相关推荐

想顺利毕业的猕猴桃在看牛客:好几个月没面试了,腾讯留面评吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务