![]() |
Frage zu bitweisen Operatoren/Sets
Ich habe eine Routine, in der eine Reihe von "Schaltern" einzeln oder in Kombination gesetzt, entfernt oder ausgelesen wird.
Mein Problem dabei: Das Ganze läuft in einer Schleife, in der alle drei Operationen an verschiedenen Stellen erfolgen können, und ein Schalter soll nur dann gesetzt werden können, wenn er nicht schon vorhanden ist, damit er gegebenenfalls einfach wieder entfernt werden kann. Eigentlich natürlich kein Problem, aber ich möchte gern vermeiden, dass jedesmal, wenn ein Schalter hinzugefügt wird, ein Abfragekonstrukt vorhanden sein muss, also im Grunde ein Eleganz-Problem. Wie macht man sowas am elegantesten? |
AW: Frage zu bitweisen Operatoren/Sets
Ich verstehe das Problem nicht, ehrlich gesagt. Bei Mengen:
Delphi-Quellcode:
Fügt das Element nur hinzu, wenn es noch nicht vorhanden war.
Menge := Menge + [Element];
Bei Bitmasken:
Delphi-Quellcode:
Fügt das Bit nur hinzu, wenn es noch nicht gesetzt war. Wozu also vorher abfragen?
Mask := Mask or Flag;
[edit] Nicht ganz richtig ausgedrückt: egal, ob das Element vorhanden bzw. Flag gesetzt war, das jeweilige Ergebnis bleibt dasselbe, so wäre es richtiger. [/edit] |
AW: Frage zu bitweisen Operatoren/Sets
Delphi-Quellcode:
Mask := Mask + Flag;
Wer so einen Mist baut, der muß natürlich vorher prüfen, aber mit OR macht man es eh richtig. Bei SETs macht das + im Prinzip ein OR. + = or - = and not * = and |
AW: Frage zu bitweisen Operatoren/Sets
Zitat:
|
AW: Frage zu bitweisen Operatoren/Sets
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:47 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz