Additions-Uebertrag
-
Dumpfbatzen, ich habe ueber Schoenheit gerede, uint64_t war ein Beispiel.
-
dann zeigen sie doch wie sie das ding schön machen würden und werden sie nicht gleich beleidigend sie vollpfosten!
-
#include <stdint.h> // für beliebige N: // testen vor der Addition: void func(uintN_t a, uintN_t b){ if (UINTN_MAX - a < b) /* "Ueberlauf" */ else /* ... */ } // testen nach der Addition: void func(uintN_t a, uintN_t b){ uintN_t sum = a + b; if (sum < a) /* "Ueberlauf" */ else /* ... */ }
-
"best-practice" ist folgendes, wobei das Interface aehnlich zu Intrinsics einiger Compiler ist:
T addc(T a, T b, bool& carry) { T sum = a + b; carry = sum < a; return sum; }
Eine Unterscheidung zw. vor und nach der Addition halte ich fuer unnoetig, da die Summanden sicher nach der Addition immernoch zur Verfuegung stehen.
nicht gleich beleidigend sie vollpfosten!
Aktion und Reaktion scheinen dir ein unbekanntes Konzept zu sein.