无+/-的加减函数:
int add(int a, int b)
{
int c = a^b;//a,b的无进位加
int d = (a&b)<<1;//产生的进位
if(d != 0) //有进位将无进位的和与进位相加,无进位则返回c
return add(c,d);
return c; //
}
int sub(int a, int b)
{
int b = add(~b,1); //将b转化为其补码。
return add(a,b);
}
无+/-的加减函数:
int add(int a, int b)
{
int c = a^b;//a,b的无进位加
int d = (a&b)<<1;//产生的进位
if(d != 0) //有进位将无进位的和与进位相加,无进位则返回c
return add(c,d);
return c; //
}
int sub(int a, int b)
{
int b = add(~b,1); //将b转化为其补码。
return add(a,b);
}