按题目要求在不使用“加减乘除”的运算符的情况下,计算两个整数的和。
具体逻辑为,用过异或运算求出不带进位的和,再通过与运算求出进位的值,将进位的值左移一位,再与不带进位的和做异或运算。重复上述操作,直至进位值为零。
#include <stdio.h>
int main()
{
int a=10,b=-100,c=0,r=0;
do
{
r=a^b;
c=a&b;
a=r;
b=c<<1;
}while(b!=0);
printf("%d\n",r);
return 0;
}