不用加减乘除法做加法
求2个数的和,不用四则运算符号。
思路:采用二进制加法的位运算模式。
1. 不考虑进位对每一位相加,异或运算。
2. 计算进位,两个数与运算,再左移1位。
3. 将进位和异或的结果相加,调用自己。
参考代码:
root@gt:/home/git/Code# ./a.out 32
root@gt:/home/git/Code# cat add.c #include <stdio.h>
int add(int num1,int num2)
{
int sum = num1 ^ num2;
int carry = (num1 & num2)<<1;
if(carry != 0)
sum = add(sum,carry);
return sum;
}
int main()
{
int res = add(8,24);
printf("%d\n",res);
return 0;
}