blob: b96f5396fc4eee5f921c87b23bc71f2b4023ac5c [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001SYNOPSIS
Zesstrad59c3892019-11-28 20:53:39 +01002 int next_bit(string str, int start)
3 int next_bit(string str, int start, int find_cleared)
MG Mud User88f12472016-06-24 23:31:02 +02004
5BESCHREIBUNG
6 Liefert den Zahlenwert des naechsten Bits im Bitstring <bit> nach
7 der Position <start>. Gewoehnlich ist dies das naechste gesetzte
8 Bit, aber wenn <find_cleared> angegeben und nicht 0 ist, wird
9 die Postion des naechsten geloeschten Bits zurueck gegeben.
10
11 Dabei ist das Finden von geloeschten Bits nach dem letzten gesetzten
12 Bit auf die tatsaechliche Laenge von <str> beschraenkt.
13
14 Jedes Zeichen enthaelt 6 Bits. In jedem Zeichen kann deshalb eine
15 Zahl von 0 bis 63 gespeichert werde (2^6=64). Das erste Zeichen
16 ist der Leerschlag " " mit dem Wert 0. Das erste Zeichen im String
17 ist jenes mit den niedrigsten Bits (0-5).
18
Zesstrad59c3892019-11-28 20:53:39 +010019BEISPIELE
MG Mud User88f12472016-06-24 23:31:02 +020020 string s;
21 int p;
22
23 s = set_bit("", 4); s = set_bit(s, 2);
24
25 for (p = -1; -1 != (p = next_bit(s, p); )
26 write(p+"\n");
27
28 --> das gibt 2 und 4 aus.
29
30SIEHE AUCH
31 set_bit(E), clear_bit(E), test_bit(E), last_bit(E), count_bits(E),
32 and_bits(E), or_bits(E), xor_bits(E), invert_bits(E), copy_bits(E)