位运算实现加法:
int add1(int num1 ,int num2)
{
int sum, carry;
do
{
sum = num1 ^ num2;
carry = (num1 & num2) << 1;
num1 = sum;
num2 = carry;
}
while(num2 != 0);
return num1;
}
int add(int a,int b)
{
int sum = a ^ b;
int var = a & b;
return !var ? sum : add(sum , var<<1);
}
位运算实现减法
int subtract1(int a ,int b)
{
if(!b)
return a;
else
{
int bit = a & b;
a^= bit;
b^= bit;
a|=b;
subtract1(a,b<<1);
}
}