darksergio
11-10-2011, 22:15
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???
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 :)
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 :)