SYNOPSIS
        int next_bit(string str, int start);
        int next_bit(string str, int start, int find_cleared);

BESCHREIBUNG
        Liefert den Zahlenwert des naechsten Bits im Bitstring <bit> nach
        der Position <start>. Gewoehnlich ist dies das naechste gesetzte
        Bit, aber wenn <find_cleared> angegeben und nicht 0 ist, wird
        die Postion des naechsten geloeschten Bits zurueck gegeben.

        Dabei ist das Finden von geloeschten Bits nach dem letzten gesetzten
        Bit auf die tatsaechliche Laenge von <str> beschraenkt.

        Jedes Zeichen enthaelt 6 Bits. In jedem Zeichen kann deshalb eine
        Zahl von 0 bis 63 gespeichert werde (2^6=64). Das erste Zeichen
        ist der Leerschlag " " mit dem Wert 0. Das erste Zeichen im String
        ist jenes mit den niedrigsten Bits (0-5).

BEISPIEL
        string s;
        int p;

        s = set_bit("", 4); s = set_bit(s, 2);

        for (p = -1; -1 != (p = next_bit(s, p); )
            write(p+"\n");

        --> das gibt 2 und 4 aus.

SIEHE AUCH
        set_bit(E), clear_bit(E), test_bit(E), last_bit(E), count_bits(E),
        and_bits(E), or_bits(E), xor_bits(E), invert_bits(E), copy_bits(E)
