标签:
先将两个数按二进制规则不考虑进位,直接相加,相当于按位异或
? ?
然后计算进位,相当于按位与
? ?
然后当不存在进位的时候计算完成
? ?
如果存在进位那么将进位和没有算进位的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));
}
? ?
}
标签:
原文地址:http://www.cnblogs.com/keedor/p/4378529.html