BS hat offiziell nur 4 Bit, aber irgendwer tut da 8 Bits rein .... so ganz Richtig kann das nicht sein.
Gut erkannt!
TByteSet
muss natürlich so deklariert sein:
Delphi-Quellcode:
type
TByteSet = set of 0..7;
Übrigens: Das funktioniert deshalb, weil Delphi immer ganze Bytes für Sets reserviert.
Schnell ist das aber nicht.
Klar, daß man das mit einer Lookup-Tabelle deutlich schneller laufen lassen kann (deren Aufbau hast du ja auch weg optimiert - alternativ als
const
deklarieren). Es ging mir hier aber im Wesentlichen darum, den beschriebenen Algorithmus möglichst exakt nachzubilden.