Questa è la funzione che ho pensato io...come faccio per gestire la parte:
void fulladder(int x, int y, int z, int *output) {
*output = (x & y) | (z & (x ^ y));
*output = (x^y)^z;
}
i bit in uscita, codificati nella variabile intera output (passata per riferimento), sono:
- bit di indice 0 di output = somma
- bit di indice 1 di output = carry

Signor oregon, mi aiuti...