Atari Logo
Atari Computer

Hauptseite -
Welches System? -
Hardware -
Software -
Emulatoren -
Internet
MausNet
Programmieren
Verweise
Über

Beispiel: ones.c

Das folgende Beispiel zeigt eigentlich nur, wieweit sich eine Optimierung treiben läßt. Leider wurde die Funktion damit auch auf Unverständlichkeit optimiert. Bevor eine Optimierung so weit geht, sollte man immer prüfen, ob eine Optimierung einer Funktion auch einen meßbaren Einfluß auf den Programmablauf hat. Wenn nicht, sollte immer eine verständlichere Form bevorzugt werden!

Wer neugierig ist, kann versuchen herauszufinden was diese Funktion macht. Wer auch noch etwas mathematische Kenntnisse hat, kann auch versuchen, dies aus der Funktion herzuleiten. Viel Spaß

Sprache C
Beispiel ones.c


ones.c

unsigned long Mask;

int
Ones(mask)                /* HACKMEM 169 */
    Mask mask;
{
    register Mask y;

    y = (mask >> 1) &033333333333;
    y = mask - y - ((y >>1) & 033333333333);
    return (((y + (y >> 3)) & 030707070707) % 077);
}


Best viewed with any browser English version not yet available.

Änderungen und Irrtümer vorbehalten. Letzte Änderung:
14 September 2001.
Home - Mail an den Webmaster - Impressum