XOR mit 3 Eingängen

  • VB.NET
  • .NET (FX) 4.0

Es gibt 42 Antworten in diesem Thema. Der letzte Beitrag () ist von VB1963.

    Nein - mit den Klammern geht's nicht:

    VB.NET-Quellcode

    1. Sub Test()
    2. Dim sw As New Stopwatch
    3. Dim L() As Boolean
    4. Dim ba() = {False, True}
    5. sw.Start()
    6. For e1 = 0 To 1
    7. For e2 = 0 To 1
    8. For e3 = 0 To 1
    9. Dim V1 = OutputXOR(ba(e1), ba(e2), ba(e3))
    10. Console.WriteLine(String.Format("{0} {1} {2} {3}", e1, e2, e3, V1))
    11. Next
    12. Next
    13. Next
    14. Console.WriteLine(String.Format("Dauer...{0}", sw.ElapsedTicks))
    15. sw.Stop()
    16. End Sub
    17. Function OutputXOR(E1 As Boolean, E2 As Boolean, E3 As Boolean) As Boolean
    18. Return (E1 Xor E2) Xor E3
    19. End Function

    weil (False) Xor True = True ist (siehe letzte Zeile im Spoiler)...

    Spoiler anzeigen
    0 0 0 False
    0 0 1 True
    0 1 0 True
    0 1 1 False
    1 0 0 True
    1 0 1 False
    1 1 0 False
    1 1 1 True ... ???
    Dauer...707

    VB1963 schrieb:

    mit den Klammern geht's nicht:
    Auch der Compiler hat da eine Vorzugsreihenfolge, wenn Du die mit Klammern realisierst, kommt dasselbe raus und es ist verständlicher.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!