a+b 不用+号实现

 

public int add( int a,int b){

    if(0 == b)

      return a; 

              int cxor = a^b;            //   0000 1111               0000 1010        0000 0101              0001 1001 

      int cand = a&b;         //     0000 1010              

              return add(cxor, cand<<1);  

}

解释 :  异或不进位加法。 与 为 标记 需要进位的, 只需要与 向左移 一位 再与 异或 相加即可。但是不能用加号 所以递归循环直到进位值为0;

posted on 2018-01-17 21:38  giessen  阅读(106)  评论(0)    收藏  举报

导航