不使用算术运算符实现加法运算
version one
在不使用算术运算符的前提下实现数的加法运算,首先应该想到的是用位运算符,当所有数的二进制数相加不会产生进位的情况下,返回的二进制数就是真值。当相加的结果产生进位时,将两个数进行相与操作,并对两个数进行异或操作并左移一位,重复上述模拟进位的过程,直到不出现进位。
int aplusb(int a, int b) {
// write your code here, try to do it without arithmetic operators.
if ( a == 0)
{
return b;
}
if( b == 0)
{
return a;
}
else
{
int c = a ^ b;
int d = (a & b)<<1;
return aplusb(c,d);
}
}