Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.
Arithmetik fuer dummies
Hi Leute!
Wir sitzen hier grad ueber ner tollen Musterloesung zur Aufgabenfolie 31, die wir nicht ganz raffen. Die Loesung die ich dazu hatte war simpel und ich dachte eigentlich auch gut, aber die is wohl der letzte kick und ich check nicht wie das funzt #, was mich sehr aergert :wand: :wand: :wand: :wand:
kann mir die jemand mal so kommentieren dass man das mal versteht was und warum (!!!)? sdafuer waeren alle anwesenden sehr dankbar
hier ist sie:
int div(int a, int b) {
int c, int i, int result;
result = 0;
c = b << 16; // was soll das?! wozu :#:
for (i =0; i < 16; i++) {
c=c>>1; // hier sind auch zahlreiche verwirrungen entstanden
result=result<<1;
if (c>=a) {
a=a-c;
result=result+1;
}
}
return result;
}
int c, i, r = 0;
c = b *2^16; das wir wieder schrittweise runterdividiert
for(i= 0; i<16 ;i++) {
c /= 2;
r *=2;
if(c >=a) { wenn a < b *2[sup]16-i[/sup]
a -=c; entspricht a -= b*[sup]16-i[/sup]
r++; r bekommt ein Bit
}
}
Wenn ich jetzt Zeit hätte und nicht Mathe lernen müsste, dann würde ich überlegen wie ich zwei Zahlen in Binärdarstellung auf Papier dividiere
HTH