剑指Offer(书):不用四则运算做加法
题目:写一个函数,求两个整数之和,不得使用四则运算
位运算。
package com.gjjun.jzoffer; /** * 写一个函数,求两个整数之和,不得使用四则运算 * * @author gjjun * @date 2018/8/21 **/ public class Solution65 { public static void main(String[] args) { System.out.println(add(2,19)); } /** * 第一步异或,相同为0,不同为1,不产生进位。 * 第二步相与,求都是1的位置,之后左移一位表示进位。 * 第三步重新赋值,重新计算,直到无进位为止。 * @param a * @param b * @return */ public static int add(int a, int b) { int sum,carry; do { sum = a ^ b; carry = (a & b) << 1; a = sum; b = carry; } while (b != 0); return a; } }