我还是减肥吧

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
public class Test {  
      //利用位运算计算加法
    public static void main(String[] args) throws Exception{  
          int a=2;
          int b=2;
          System.out.println( getSum(a,b));
    }  
    public static int getSum(int x, int y) {
        if(y==0)  { return x; } //没有进位时完成运算
        int sum,carry;
        sum=x^y;
        carry=(x&y)<<1;
        return getSum(sum,carry); //递归相加
        
    }
  
}

位运算实现整数加法本质就是用二进制进行运算。

    其主要用了两个基本表达式:

  1. x^y //执行加法,不考虑进位。

  2. (x&y)<<1 //进位操作

令x=x^y ;y=(x&y)<<1 进行迭代,每迭代一次进位操作右面就多一位0,最多需要“加数二进制位长度”次迭代就没有进位了,此时x^y的值就是结果。

posted on 2016-07-28 20:00  adaonline  阅读(385)  评论(0编辑  收藏  举报