码迷,mamicode.com
首页 > 其他好文 > 详细

不用加减乘除做加法 47

时间:2015-03-30 17:53:21      阅读:106      评论:0      收藏:0      [点我收藏+]

标签:

先将两个数按二进制规则不考虑进位,直接相加,相当于按位异或

? ?

然后计算进位,相当于按位与

? ?

然后当不存在进位的时候计算完成

? ?

如果存在进位那么将进位和没有算进位的sum再继续计算

? ?

? ?

package add47;

? ?

public class Add47 {

static int add(int n1,int n2){

int sum=0;

int carry=0;

do {

sum=n1^n2;

carry=(n1&n2)<<1;

n1=sum;

n2=carry;

} while (n2!=0);

return sum;

? ?

}

public static void main(String[] args) {

// TODO Auto-generated method stub

System.out.println(add(2, 3));

}

? ?

}

不用加减乘除做加法 47

标签:

原文地址:http://www.cnblogs.com/keedor/p/4378529.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!