Bei Sets mit vorfefinierten werten, sowie bei Integersets, ist es nicht so eindeutig,
aber im Allgemeinen:
Delphi-Quellcode:
type e = (a, b, c, d);
s = set of e;
// oder
type s = set of (a, b, c, d);
Werte sind alle durchnummeriert, von 0 beginnend
a=0, b=1, c=2 und d=3
das Set ist dann ein "Bit-Array" aller werte
Bit 0 = a
Bit 1 = b
Bit 2 = c
Bit 3 = d
ergibt also folgendes
bitmaskte = $1 shl Wert;
$0001 = a
$0002 = b
$0004 = c
$0008 = d
$0010 = ...
Hat das Set also einen wert von $0005, dann sind a und c gesetzt.
$0005 = (1 shl 0) {1} or (1 shl 2) {4}
Dann sind in Delphi die Sets so groß/klein wie nötig
- bis 8 Werte = Byte, bis 16 Werte = Word usw.
Ein Therapeut entspricht 1024 Gigapeut.