剑指offer47:不用加减乘除做加法

来源:互联网 发布:网络高清摄像头报价 编辑:程序博客网 时间:2024/06/05 16:02

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

代码实现:

public class Main {    public static void main(String[] args) {//        System.out.println("Hello World!");        int result = Add(5, 17);        System.out.println(Integer.valueOf(result));    }    public static int Add(int num1, int num2){        int sum, carry;        do {            sum = num1 ^ num2;            carry = (num1 & num2) << 1; //位与  做移一位            num1 = sum;            num2 = carry;        }while(num2 != 0);        return num1;    }}

控制台输出:

22
0 0