XOR oder ODER?

Sebastianxl

Cadet 4th Year
Registriert
Jan. 2011
Beiträge
124
Hallo zusammen,

habe die Tage eine Prüfung der IHK angesehen und es gab in einem Programmablaufplan die Aufgabe zwischen In,- Auslands und Großkunden zu unterscheiden.

Aussage war das Kunden nur einer Kategorie angehören können.

In dem entsprechenden Abschnitt habe ich das mit XOR gelöst (Kategorie prüfen -> XOR -> In, Ausland, Großkunden) in der Lösung wurde jedoch ein einfaches OR verwendet was nach meiner Ansicht falsch ist...

Bitte um Erleuchtung,

Danke
 
Da ein Kunde nur In-, Ausland oder Großkunde sein kann, ist XOR wohl korrekt. OR würde auch ermöglichen, dass ein Kunde auch gleichzeitig zwei Zustände haben kann.

Wäre nicht das erste Mal das die IHK selber Fehler macht. (die natürlich nie zugegeben werden, eher fällst du durch....)
 
Es kann ein Inlandskunde "oder" Auslandskunde "oder" Großkunde sein. Daher ODER umgangssprachlich. Was aber Gatter-Technisch totaler Blödsinn ist.
XOR mit 3 Eingägen ist aber auch nicht korrekt da 1,1,1 auch 1 ergeben würde, aber viel sinnvoller als OR.
https://www.irbe.ch/wp-content/uploads/2014/08/3InputXOR.png

Oder gibts ein XOR mit 3 Eingängen was so arbeitet, dass 0 rauskommt?^^

Wenn ich mich nicht vertan hab:
XOR.GIF
Man verzeihe mir die nicht genutzte wohl mögliche Optimierung der Schaltung aufgrund von zu-lange-her, Faulheit und Verständlichkeit.
 
Zuletzt bearbeitet:
Oder gibts ein XOR mit 3 Eingägen was so arbeitet, dass 0 rauskommt?

Wohl nicht, ein Denkfehler meinerseits, ist schon lange her. Macht nur logisch irgendwie keinen Sinn warum ein XOR mit 111 wahr ist, weil das ja irgendwie die Funktion des Gatters ad absurdum führt, aber hast technisch Recht.
 
Zuletzt bearbeitet:
Wie wäre statt Vermuten, einfach testen mit einer Simulation der Gatter? Das ist oft einfach als zu versuchen alle Zustände korrekt im Kopf zu haben.

https://logiksim.dbclan.de/
 
@ cvzone die funktion vom xor ist das wenn eine ungerade anzahl an eingängen ( 1,3,5) 1 ist der ausgang ebenfalls 1 ist also passt es doch
 
cvzone schrieb:
Wohl nicht, ein Denkfehler meinerseits, ist schon lange her. Macht nur logisch irgendwie keinen Sinn warum ein XOR mit 111 wahr ist, weil das ja irgendwie die Funktion des Gatters ad absurdum führt, aber hast technisch Recht.

Falsch gedacht bzw vorgestellt. Stell dir einfach vor Logikbausteine haben immer nur zwei Eingänge, Xor liefert dann 1 wenn an genau einem von beiden 1 anliegt (deshalb exklusives Oder). Hast du 3 Inputs zu testen, lässt du also zwei in ein Xor laufen und dann in ein weiteres Xor den dritten und das Ergebnis des ersten Xors. Da beim ersten Xor 0 rauskommt, kommt beim dritten dann (bei 111) 0 und 1an.

Oder schriftlich: 1 xor 1 xor 1 = (1 xor 1) xor 1 = 0 xor 1 = 1.

Diese ganzen Definitionen von wegen 'wenn eine ungerade Anzahl Inputs' kann man sich voll schenken, letztendlich läufts immer darauf hinaus dass man den Output zweier Inputs dann ins nächste Element mit dem nächsten Input packt, dann kann man sich das noch nach 10 Jahren zusammenreimen :)

Achso: @ Frage: musst du eigentlich nur ausformulieren : wenn (a und nicht (b oder c)) oder (b und nicht (a oder c)) oder (c und nicht (b oder a)). Das kann man mit boolscher Algebra fix ausmultiplizieren zu a und nicht b und nicht c oder b und nicht c und nicht a oder c und nicht b und nicht a, ab da kann man sich schon vorstellen wie man es unkompliziert schaltet. A und (b negiert) in ein And, den output mit c negiert in ein zweites And, das gleiche nochmal für b und c und das dann in zwei Ors laufen lassen deren Outputs dann ebenfalls in ein Or laufen. Sind inklusive Negation 15 Elemente.
 
Zuletzt bearbeitet von einem Moderator:
Falsch gedacht bzw vorgestellt. Stell dir einfach vor Logikbausteine haben immer nur zwei Eingänge, Xor liefert dann 1 wenn an genau einem von beiden 1 anliegt (deshalb exklusives Oder). Hast du 3 Inputs zu testen, lässt du also zwei in ein Xor laufen und dann in ein weiteres Xor den dritten und das Ergebnis des ersten Xors. Da beim ersten Xor 0 rauskommt, kommt beim dritten dann (bei 111) 0 und 1an.

Natürlich, gute Erklärung von Dir! Ist alles schon wieder so viele Jahre her.
 
mambokurt schrieb:
Logikbausteine haben immer nur zwei Eingänge

Hmm...du meinst etwa so wie z.B. ein NOT? ^^

@XOR-Topic: Ich möchte da keinem zu Nahe treten, aber genau deshalb mag ich Praktiker nicht. Man bastelt in irgendwas herum, ohne Grundlagen boolscher Algebra wirklich zu verstehen und das Resultat davon ist dann bei a XOR b XOR c erstmal 20 Zeilen schreiben zu müssen inklusive einer Schaltung, damit man einen Zusammenhang versteht und dann eventuell sogar noch falsche Schlüsse daraus zieht: denn bei De Morgan oder beliebig komplexeren Verkettungen wird "ich probiere es mal aus und bau 'ne Schaltung" höchstwahrscheinlich nicht mehr fehlerfrei funktionieren.

Grundsätzlich reicht es z.B. schon vollkommen zu wissen, dass es in boolscher Algebra nur unäre (NOT) und binäre (AND, OR) Operatoren gibt. Die werden auch als basic operations bezeichnet. Darüber hinaus gibt es noch die secondary operations: implication, exclusive or (XOR) und equivalence, welche allesamt binär sind.

Daraus kann man direkt schließen: etwas wie a XOR b XOR c als ein Ausdruck (=eine Schaltung mit tatsächlich 3 Eingängen sowie einer Auswertung, die echt parallel arbeitet) existiert nicht.

Das ganze ist entweder (a XOR b) XOR c oder a XOR (b XOR c). Daraus wird auch sofort klar, warum (1, 1, 1) zu 1 evaluiert: egal welches XOR man zuerst auswertet, dieses wird definitiv 0, da alle Eingangsvariablen mit 1 belegt sind. Damit hat man für das zweite, danach ausgewertete XOR unweigerlich immer (1, 0) respektive (0, 1) übrig, was folglich immer zu 1 ausgewertet wird.

Das ist übrigens auch der Grund, warum man in Programmiersprachen nicht einfach a OPERATOR b OPERATOR c schreiben kann, sondern immer (a OPERATOR b) OPERATOR c oder a OPERATOR (b OPERATOR c).
Binäre Operatoren mit 3 Operanden zu verknüpfen ist nämlich schlichtweg mathematisch falsch.
 
Zuletzt bearbeitet:
Zurück
Oben