| |
|
|
Normann Strübli | Ermitteln ob eine Zahl gerade oder Ungerade ist
|
|
|
| |
|
|
|
Melanie Brayer | Warum nicht MODulo 2??? |
|
|
| mele (¯`·.¸¸.{ WinXP Pro, XProfan9, XPIA }.¸¸.·´¯)
<Bugs zählen ist besser als Schafe zählen, da der Computer nur so schlau ist wie der der Mensch der ihn bedient.> | 18.11.2005 ▲ |
|
|
|
|
Normann Strübli | Ich denke mit MOD ist es ganz einfach langsamer
Aus einem anderen Forum: [quote:cb43b037ef] Doch ist es, habe es bei 100.000.000 Vergleichen getestet, die Variante mit if Zahl and 1 = 1 ist um den Faktor 2 schneller als die Variante if Zahl mod 2 = 1.[/quote:cb43b037ef] |
|
|
| |
|
|
|
Michael Wodrich | Da hierzu offenbar doch Informationsbedarf besteht, sollten wir es jetzt mal stehen lassen.
Kurze Erklärung hierzu:
Wenn man mit Bitmaskierungen arbeitet kann die CPU das schneller abarbeiten als wenn man mit Multiplikation und Division arbeitet. Letztere sind einfach grottenlangsam.
Und speziell zur Frage der Erkennung auf gerade und ungerade: Wenn das letzte Bit einer Zahl gesetzt ist, dann ist sie ungerade. Das ist wirklich die schnellste Methode der Erkennung.
In Assembler würde ich z.B. einfach das unterste Bit der Zahl ins Carry-Flag schieben und damit dann einen bedingten Sprung JC/JNC auslösen.
Schöne Grüße Michael Wodrich |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 18.11.2005 ▲ |
|
|
|