So che possiamo usare la logica dell'addizionatore binario dove Somma = a XOR b e vai = a AND b Ho anche avuto una soluzione:L'aggiunta di due numeri senza operatore + (chiarificazione)
int add(int a, int b)
{
if(b == 0)
return sum;
sum = a^b;
carry = (a & b) << 1;
return add(sum,carry);
}
Quello che non capisco qui è perché il carry bit è spostato, o moltiplicato per 2 durante ogni ricorsione?
Il codice presenta problemi, ad esempio sum e carry non sono definiti. Presumo che siano globali –
Sì, la somma e il trasporto sono globali. Mi dispiace per quello – noMAD