Boolsche Logik in Schleifen

TP-Inc

Level-3
Beiträge
1.165
Reaktionspunkte
265
Ab und zu brauch ich Abfragen ob alle, oder ein Bit (UND/ODER) in einem Array TRUE sind.
Mein Vorgehen bei UND:
Sammelbit auf TRUE -> FOR Schleife auf alle abzufragenden Bits -> Wenn eines FALSE -> Sammelbit auf False -> EXIT.
bei ODER quasi umgekehrt. Gibts da elegantere Methoden?
 
Zuletzt bearbeitet:
Man kann Array auf "Gleich" und "Ungleich" vergleichen.
Wenn man ein TestArray komplett mit False vorbelegt (Startwerte) und ein zweites komplett mit True, kann man das mit dem abzufragenden Array vergleichen.

Code:
IF "g_PosData".Axis[1].position <> "g_PosData".Axis[2].position THEN
    "g_PosData".Axis[1].position := "g_PosData".Axis[2].position;
END_IF;
wobei position --> Array[0..20] of DInt (geht natürlich auch mit Bool)

Das ist im Code recht kurz und elegant,aber man hat mehr Daten wegen der TesdtArrays. Der Prozessor macht aber natürlich intern sicher auch nichts anderes als eine Schleife.
 
Zurück
Oben