Das kann man ja mit einer einfachen if-Abfrage vorher prüfen.
oder
bOK := (B1 xor B2 xor B3) and not (B1 and B2 and B3);
Das ist elegant! So etwas suchte ich auch, fand es aber auf die Schnelle nicht. Zwar werden die drei Variablen zweimal miteinander verknüft (soweit war ich noch(?) nicht), jedoch verbleibt die Lösung des Problems auf dem Niveau boolescher bzw. logischer Operationen (die Addition ist pragmatisch und korrekt, hat aber den zwangsläufigen Nimbus einer Bastelei). Außerdem ist augenblicklich klar, daß diese Funktion für beliebig viele Operanden erweiter- bzw. anwendbar ist (beliebig großes boolesches Array).
Meine Anerkennung!