ho scritto questa funzione per la somma algebrica di due interi, ma funziona solo fin quando sono entrambi positivi, come posso fare in modo che funzioni anche con numeri negativi???
codice:
int add(int op1,int op2)
{
int sum, carry=1;
while(carry>0)
{
/*vedi tavole verità*/
sum=op1^op2;//uno xor fra i due operatori restituisce la somma senza riporto
carry=(op1)&(op2);//il riporto si ottiene con un and
carry=carry<<1;//il quale viene shiftato fino a diventare 0
op1=sum;
op2=carry;
}
return op1;
}
Grazie a tutti