題目:寫一個函數,求兩個整數之和,不得使用四則運算
位運算。
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; } }