addition ohne verwendung von +
-
Hallo zusammen!
ich hätte eine frage: ich will eine Funktion int add(unsigned i, unsigned j), basteln, die die Summe der beiden Parameter i und j retourniert. jedoch soll weder + - += noch -= verwendet werden.
kann mir jemand einen denkanstoß geben?
lg*
-
Wie sieht's mit ++ und -- aus?
-
Verwende doch Bitoperatoren:
x & y : Bit And x | y : Bit Or x ^ y : Bit XOr Natürlich jeweils auch als: x &= y x |= y x ^= yUnd wie man über Bits eine Addition macht, kannst du über jegliche Suchfunktion finden. Steht womöglich sogar in der Wikipedia. Notfalls über ALU (Das Teil, welches in der CPU für dich rechnet).
Grüssli
-
Du kannst es auch mit binärer Arithmetik lösen. ^ für die Addition und & für den Übertrag.
edit: zu langsam...
-
while (a) a--, b++; return b;
-
#include <numeric> unsigned int add(unsigned int i, unsigned int j){ unsigned int ar[] = {i, j}; return std::accumulate(ar, ar+2, 0); }
-
#include <functional> unsigned int add(unsigned int i, unsigned int j){ return std::plus< unsigned int >()( i, j ); }Oder so
