不用算术运算符实现两个数的的加法
(1)先不考虑进位,按位计算各位累加,也就是异或操作,得到值a
(2)然后计算进位,并将进位的值左移,得值b,若b为0,则a就是加法的结果。
1 #include<stdio.h>
2 int add_no_arithm(int a,int b)
3 {
4 if(b == 0)
5 {
6 return a;
7 }
8
9 int sum = a ^ b;
10 int carry = (a & b) << 1;
11
12 printf("sum = %d,carry = %d\n",sum,carry);
13 return add_no_arithm(sum,carry);
14 }
15 int main()
16 {
17 printf("%d\n",add_no_arithm(3,5));
18 return 0;
19 }
20