[剑指Offer]65-不用加减乘除做加法

题目

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

题解

用位运算模拟加法的三步:

  • 无进位加法:异或运算。
  • 进位:与运算再左移一位。
  • 直到进位为0结束。

代码

public class Main {
	public static void main(String[] args) {
		System.out.println(Add(5,17));
	}
	public static int Add(int num1,int num2) {
        int sum=0;
        int carry=0;
        do {
        	sum=num1^num2;
        	carry=(num1&num2)<<1;
        	num1=sum;
        	num2=carry;
        }while(carry!=0);
        return sum;
    }
}

posted on 2019-07-06 13:50  coding_gaga  阅读(99)  评论(0编辑  收藏  举报

导航