剑指Offer—48—不用加减乘除做加法

来源:互联网 发布:云短信软件 编辑:程序博客网 时间:2024/05/29 15:06

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

package A48不用加减乘除做加法;import com.sun.org.apache.bcel.internal.generic.IF_ACMPEQ;public class Solution {    public int Add(int num1,int num2) {       // 位运算         //  只相加 + 进位 (一直加到没有进位) ,最后直接与运算即可.       // 1. 二进制 相加 不算进位 得到 A       // 2. 进位 = 二进制 相与 后左移       // 3 A + jinwei 得到结果        while(num2 != 0){            int temp = num1^num2;  //  只相加,不进位,1+1=0;1+0=1;0+0=0;            num2 = (num1&num2) << 1; // 产生进位,            num1 = temp;  //        }        return num1;    }    public static void main(String[] args) {        Solution solution = new Solution();        solution.Add(4,5);    }}
阅读全文
0 0
原创粉丝点击