Forum: Programmieren allgemein
by nicodex,
15. Apr 2008
Sets haben halt ein eigenes Operatorenverhalten (welches für Sets durchaus sinnvoll ist).
Es gibt noch andere Operatoren für Sets (<=, >=, *, ...) - damit könnte man sich in diesem Beispiel sämtliche binären Operatoren sparen (die man spätestens nach zwei Wochen, trotz Quelltext, nur noch mühsam lesen/verstehen kann).
Forum: Programmieren allgemein
by nicodex,
15. Apr 2008
Das sind Sets...
...der Compiler macht mit den Bits(-Sets) genau das was man erwartet - nur mit dem Unterschied, dass man den Code noch lesen kann und die Optimierung dem Compiler überlassen bleibt.
(Ich weiß was ich tue - nicht immer, aber oft genug)
Forum: Programmieren allgemein
by nicodex,
15. Apr 2008
Nö, nur anders ;)
Schade, in aktuellen Delphi-Versionen hätte man den Array-Operator für Bits (so wie im MC-Pascal) nachbilden können.
Include/Exclude für einzelne Bits, oder +/- für mehrere:
var
Foo: TByteBits;
begin
Forum: Programmieren allgemein
by nicodex,
15. Apr 2008
Wenn man den Leitungen (Bits) Namen geben kann, dann würde ich immer die Abbildung über ein Set bevorzugen.
(allerdings bedürfen die Set-Operationen erstmal einer gewissen Einarbeitungszeit auf Entwicklerseite)
Es gibt viele Wege nach Rom - ist nur die Frage, wieviel man von der Landschaft sehen will :)
ps: Für eine konkrete Empfehlung bräuchte man u.a. die Delphi-Version und möglicherweise...
Forum: Programmieren allgemein
by nicodex,
15. Apr 2008
Was genau willst du machen?
ps: Es gibt die Möglichkeit die Bits über ein Set abzubilden, sie über Operatoren zu lesen/manipulieren, oder die Klasse TBits zu verwenden...
edit: "(Variable and 8) = 8" ist langsamer als "(Variable and 8) <> 0".
type
PByteBit = ^TByteBit;
TByteBit = (bBit0, bBit1, bBit2, bBit3, bBit4, bBit5, bBit6, bBit7);
PByteBits = ^TByteBits;
TByteBits = set...