XOR



  • Hallo!

    Kann man eigentlich ein XOR Gatter nur mit "UND" und "ODER" Gattern erstellen? Wenn ja, dann müsste das doch auch mit der boolschen Algebra funktionieren? Wie kann ich erreichen, dass ich nur mit "UND" und "ODER" 1 ausgebe, wenn eine ungerade Anzahl von Eingängen 1 sind?

    Vielen Dank
    lg, freakC++



  • Klar geht das - du kannst jede Boolesche Funktion durch die Grundoperationen NICHT, UND und ODER darstellen (ohne Negation wird es aber schwierig):

    \begin{math} A xor B = (\bar A \wedge 😎 \vee (A \wedge \bar 😎 \end{math}



  • Das führt auf den Begriff des vollständigen Operatorensystems. UND, ODER, NICHT ist ein solches, es gibt viele andere. Zum Beispiel kann man alle booleschen Funktion nur mit NAND darstellen.



  • Wow! Danke! Angenommen ich habe nun nicht zwei Eingänge, sondern drei. Müsste ich einfach, ein C in die Klammern schreiben und zwei ODER Faktoren hinzufügen?

    Und wie schreibe ich solch einen boolschen Ausdruck bei n Eingängen auf?

    Vielen Dank
    lg, freakC++



  • Du führst den Ausdruck durch Verwendung der Assoziativität von XOR auf eine binäre Verknüpfung zurück. $$A \oplus B \oplus C = (A \oplus 😎 \oplus C$$. Alles weitere wie gehabt. Vielleicht ergeben sich nennenswerte Vereinfachungen, glaub ich aber nicht, XOR ist ziemlich zickig bei sowas.



  • freakC++ schrieb:

    Wow! Danke!

    Nur, um das nochmal klarzustellen. UND und ODER reichen nicht aus. Du brauchst das NICHT zusätzlich. Dann kannst Du aber auch auf das ODER oder auf das UND verzichten.



  • Gregor schrieb:

    Dann kannst Du aber auch auf das ODER oder auf das UND verzichten.

    Wie habe ich das zu verstehen? Was bleibt denn dann noch über, wenn ich noch nicht mal UND und ODER habe? Nur NICHT!! Ich habe es eher so verstanden, dass ich mit UND, ODER und NICHT alle Schaltungen beschreiben kann.



  • Gregor schrieb:
    Dann kannst Du aber auch auf das ODER oder auf das UND verzichten.

    Wie habe ich das zu verstehen? Was bleibt denn dann noch über, wenn ich noch nicht mal UND und ODER habe? Nur NICHT!! Ich habe es eher so verstanden, dass ich mit UND, ODER und NICHT alle Schaltungen beschreiben kann.

    Da oben war exklusives oder gemeint^^
    man kann jede boolesche Funktion nur durch NAND (also NOT AND) darstellen. Dasselbe funktioniert auch mit NOR (NOT und OR)



  • NAND bedeutet, dass 1 ausgegeben wird, wenn mindestens ein Eingang 0 ist. 0 wird ausgegeben, wenn alle Eingänge 1 sind.

    Das sieht dann so aus:

    \begin{math}\overline{A \vee B}\end{math}

    Damit kann ich also alle Ausdrücke erstellen? Wie kann ich denn mit NAND NOR ausdrücken?

    Wie komme ich von

    \begin{math}\overline{A \vee B}\end{math}

    auf

    \begin{math}\overline{A \wedge B}\end{math}

    Das kann ich mir nicht so richtig vorstellen. Oder ist das zu kompliziert für eine rasche Erklärung?

    Was ich mich auch frage: Warum kann man alle bool'schen Gleichungen durch NAND ausdrücken? Warum sagt man nicht, dass man alle durch die Elemantaroperatoern NICHT, ODER, UND zusammensetzen kann? NAND selbst ist ja schon zusammengesetzt!

    Vielen Dank
    lg, freakC++



  • freakC++ schrieb:

    Was ich mich auch frage: Warum kann man alle bool'schen Gleichungen durch NAND ausdrücken?

    x AND y == not(x NAND y)
    x OR y == not(x) NAMD not(y)
    (hoffe mal, das stimmt so)
    Also wenn wir noch NOT schaffen, haben wir alles.
    not(x) == x NAND x //Trick 17, einfach x an beide Beinchen anlegen.

    freakC++ schrieb:

    Warum sagt man nicht, dass man alle durch die Elemantaroperatoern NICHT, ODER, UND zusammensetzen kann?

    Sagt man doch auch.

    freakC++ schrieb:

    NAND selbst ist ja schon zusammengesetzt!

    Naja, so ein NAND-Gatter muß nicht aus einem AND-Gatter und nachgeschaltetem Negierer bestehen.

    http://de.wikipedia.org/wiki/NAND-Gatter


Anmelden zum Antworten