Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Fragen zur XOR Funktion (https://www.delphipraxis.net/83293-fragen-zur-xor-funktion.html)

Newbie44 30. Dez 2006 16:33


Fragen zur XOR Funktion
 
Hallo,

also ich hab eine Frage wegen der Xor Funktion in C++. und zwar die allererste Frage, kann mir jemand diese beispiele genauer erklären was sie genau machen? ich hab leider keine gute beschreibung zur funktion selbst gefunden:

Code:
0 xor 0 -> 0
0 xor 1 -> 1
1 xor 0 -> 1
1 xor 1 -> 0
Wieso ergibt das dann mal 0 und mal 1?

Die zweite Frage zu der Funktion.

Code:
A bitwise exclusive OR takes two bit patterns of equal length and performs the logical XOR operation on each pair of corresponding bits. The result in each position is 1 if the two bits are different, and 0 if they are the same.
Was ist damit genau gemeint? Ich kapiere das nicht so ganz, da ich leider nicht so gut Englisch kann. Könnte mir diese XOR Funktion in c++ mal deutlicher erklären?

Bitte bitte

Gruß und Danke

Sebastian

zebrafalke 30. Dez 2006 16:37

Re: Fragen zur XOR Funktion
 
Zitat:

Zitat von Newbie44
Code:
0 xor 0 -> 0
0 xor 1 -> 1
1 xor 0 -> 1
1 xor 1 -> 0

XOR bedeutet entweder oder. es darf immer nur eine Bedingung eintreten, aber nicht beide.

DocBorn 30. Dez 2006 16:39

Re: Fragen zur XOR Funktion
 
Naja als mit Bit ist hier natürlich eine 0 oder 1 gemeint und die xor-Funktion nimmt zwei Bits auf und liefert ein Bit zurück. Man könnte auch sagen, dass es auch eine or-Funktion und eine and-Funktion gibt, die solltest du ja kennen.

Xor soll glaube ich exklusives Oder heißen und gibt halt 1 zurück, wenn die beiden Argumente verschieden sind, und nur dann. Also bei or ist es ja so:

1 or 1 = 1
1 or 0 = 1
0 or 1 = 1
0 or 0 = 0

Bei xor ists halt so, dass 1 xor 1 nicht 1 ist, weil die beiden Argumente nicht verschieden sind. xor unterscheidet sich auch nur in eben dieser Situation (1 xor 1) von der or-Funktion.

Vielleicht ist es halt etwas überzogen hier von "Funktion" zu sprechen, obwohl es selbstverständlich eine ist.

Lg Lars

P.S.: Mein Vorredner hats dann zusammengefasst ;)

himitsu 30. Dez 2006 16:44

Re: Fragen zur XOR Funktion
 
1. Es ist keine Funktion!
2. XOr = Exclusives Oder (eXclusive OR)
3. 0 = Falsch/False - 1 = Wahr/True (aber dazu solltest du wohl besser nochmal in der Schule gehen ... dat gehört schließlich zum Grundwissen)
4. 0110: es bedeutet einfach, das als Ergebnis nur TRUE rauskommt, wenn entweter der erst, oder der zweite Wert True ist (aber dat steht auch nochma in deinem englischem Text :zwinker: )

vielleicht ist es so verständlicher:
Code:
C := A xor B;

A        B       C
False xor False -> False
False xor True -> True
True xor False -> True
True xor True -> False

Newbie44 30. Dez 2006 16:46

Re: Fragen zur XOR Funktion
 
Hallo,

aja danke für die beschreibung, Ihr habt mir damit wirklich sehr geholfen. Nur ist es ziemlich schwer was darüber rauszufinden, aber wenn das so ist dann könnte man ja die Funktion eigentlich X or nennen, X oder

Wenn ich noch ne frage habe stelle ich Sie noch mit rein.

Gruß

Sebastian

@himitsu

Bitte nicht gleich ausrasten nur weil ich mal was verwechselt habe. Jeder fängt ja mal klein an und hat probleme, das mit True und False kenne ich schon wirklich gut genug, nur hab ich halt noch nie mit Xor gearbeitet

Khabarakh 30. Dez 2006 16:59

Re: Fragen zur XOR Funktion
 
Zitat:

Zitat von Newbie44
Nur ist es ziemlich schwer was darüber rauszufinden,

Stimmt, Google wurde erst vor acht Jahren gegründet und Wikipedia sogar erst vor fünf ;) .
Zitat:

aber wenn das so ist dann könnte man ja die Funktion eigentlich X or nennen, X oder
Ein Leerzeichen in einem Operatornamen wäre wirklich ein wenig dämlich. Schließlich ist sowohl in der Informatik, sowohl in der Mathematik als auch überhaupt im allgemeinen Schriftgebrauch das Leerzeichen das Trennzeichen zwischen zwei Token/Wörtern/...

Christian Seehase 30. Dez 2006 18:08

Re: Fragen zur XOR Funktion
 
Moin Sebastian,

Zitat:

Zitat von Kabarakh
Ein Leerzeichen in einem Operatornamen wäre wirklich ein wenig dämlich.

wobei man in C++ eigentlich eher ^ statt xor verwendet (mal abgesehen von dem Makro)

Newbie44 30. Dez 2006 18:12

Re: Fragen zur XOR Funktion
 
jupp damit haste recht, das benutzt man in C. jedoch scheinen nicht alle die hier geantwortet das gelesen zu haben das es sich um C handelt und es gibt ja nun mal nen unterschied in dem fall zwischen C und Delphi.

Aber dennoch danke für euere Hilfe, jetzt hab ichs kapiert

Christian Seehase 30. Dez 2006 18:59

Re: Fragen zur XOR Funktion
 
Moin Sebastian,

Zitat:

Zitat von Newbie44
es gibt ja nun mal nen unterschied in dem fall zwischen C und Delphi.

das VS enthält in der iso646.h ein Makro namens xor.

Khabarakh 30. Dez 2006 19:09

Re: Fragen zur XOR Funktion
 
Zitat:

Zitat von Newbie44
jedoch scheinen nicht alle die hier geantwortet das gelesen zu haben das es sich um C handelt und es gibt ja nun mal nen unterschied in dem fall zwischen C und Delphi.

Wenn du den Begriff "xor" selbst in jedem Beitrag verwendest, auch noch in einem Delphiforum fragst und dazu noch berücksichtigst, dass xor ein allgemeiner Begriff für diesen Junktor ist, der erst einmal überhaupt nichts mit Informatik zu tun hat, darfst du dich nicht wundern, wenn du erst nach 6 Beiträgen berichtigt wirst :zwinker: .


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:47 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz