题目:不能用+ - X 除,求两个数的和
分析:不能用10进制的运算符,就用二进制运算符,分三步,第一步不考虑进位,0与0 是0 1与1是0 0,1 1,0都是1 这和异或的运算符运算结果相同。第二步考虑进位,只有当都是11的时候才进位,其他都是0,相当于 先做与运算再向左移。第三步,前面两个结果相加。
int add(int num1,int num2)
{
int sum=0,carry=0;
do{
sum=num1^num2;
carry=(num1&num2)<<1;
num1=sum;
num2=carry;
}while (carry!=0);
return sum;
}