typedef struct int64_struct { unsigned int lo; unsigned int hi; } int64; void add_64(int64 *dest, int64 *src1, int64 *src2) { unsigned hibit1=src1->lo >> 31, hibit2=src2->lo >> 31, hibit3; dest->lo=src1->lo + src2->lo; hibit3=dest->lo >> 31; // hier geht man anscheinend davon aus, dass src1.lo > src2.lo ??? dest->hi=src1->hi + src2->hi + ((hibit1 & hibit2) || (hibit1 != hibit3)); return; } int main(void) { int64 dest; int64 summand1; int64 summand2; summand2.lo = 0xF0000001; summand2.hi = 0x00000000; summand1.lo = 0x30000002; summand1.hi = 0x00000000; add_64(&dest, &summand1, &summand2); }