Recentemente ho trovato questa domanda di intervista e non sono bravo nella manipolazione dei bit. Potete ragazzi spiegare cosa fa la funzione 'f'. Non sono sicuro di cosa funzioni questa funzione ricorsiva.Come aggiungere due numeri senza usare l'operatore + in C usando la manipolazione dei bit
unsigned int f (unsigned int a , unsigned int b)
{
return a ? f ((a&b) << 1, a ^b) : b;
}
ho cercato di incollare il codice in Visual Studio per testare la logica, ma compilatore sta gettando qualche messaggio di errore "non può convertire implicitamente il tipo 'uint' a 'bool'. E 'la dichiarazione di condizione (un?) Nel restituire qualcosa manca? ma sono sicuro che la domanda dell'intervista era esattamente la stessa menzionata sopra
Questa è una domanda di intervista sanguinosa. –
Questo è C, giusto? –
questa è una somma senza '+' http://www.geeksforgeeks.org/add-two-numbers-without-using-arithmetic-operators/ –