INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 1 Bewertungen - 5 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
XOR erklärt
10.02.2018, 18:45
Beitrag #1
XOR erklärt
Die XOR (Exclusive OR / Entweder-Oder) Verknüpfung ist eine binärer Operator, d.h. er steht zwischen 2 Werten.
Wir betrachten hier erst mal nur boolsche Werte ( 0 oder 1 oder auch nur 1 Bit)
Wahrheitstabelle:
Code:
a   b   a^b
0   0     0
0   1     1
1   0     1
1   1     0
Also in Worten: Nur wenn a und b ungleich sind, ist a XOR b 1.

Wenn der eine Wert konstant ist (im Beispiel 1) ergibt sich daraus:
Code:
a   a^1
0     1
1     0
Also ist a XOR 1 immer das Gegenteil von A.

Das hätte man für boolsche Variablen auch als !a (nicht a) ausdrücken können.
Für Konstrukte aus mehreren Bits (z.B. Bytes) gilt diese Beziehung für jedes Bitpaar einzeln!

Bsp.:
Code:
a = 1010 1010, b = 1111 1111 --> a ^ b = 0101 0101

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.02.2018, 19:35
Beitrag #2
RE: XOR erklärt
(10.02.2018 18:45)Tommy56 schrieb:  Die XOR (Exclusive OR / Entweder-Oder) Verknüpfung ist eine binärer Operator, d.h. er steht zwischen 2 Werten.
Wir betrachten hier erst mal nur boolsche Werte ( 0 oder 1 oder auch nur 1 Bit)
Wahrheitstabelle:
Code:
a   b   a^b
0   0     0
0   1     1
1   0     1
1   1     0
Also in Worten: Nur wenn a und b ungleich sind, ist a XOR b 1.

Wenn der eine Wert konstant ist (im Beispiel 1) ergibt sich daraus:
Code:
a   a^1
0     1
1     0
Also ist a XOR 1 immer das Gegenteil von A.

Das hätte man für boolsche Variablen auch als !a (nicht a) ausdrücken können.
Für Konstrukte aus mehreren Bits (z.B. Bytes) gilt diese Beziehung für jedes Bitpaar einzeln!

Bsp.:
Code:
a = 1010 1010, b = 1111 1111 --> a ^ b = 0101 0101

Gruß Tommy

Danke, Tommy
für die Erklärung

Lg, Claus
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.02.2018, 23:14
Beitrag #3
RE: XOR erklärt
Ich wollte schon auf die Arduino Code-Referenz verweisen weil das XOR dort auch schön erklärt ist.
Was Tommy schreibt bringt es aber auch kurz und knapp auf den Punkt.

Gruß Arne
Mit zunehmender Anzahl qualifizierter Informationen bei einer Problemstellung, erhöht sich zwangsläufig die Gefahr auf eine zielführende Antwort.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.03.2018, 16:30
Beitrag #4
RE: XOR erklärt
XOR kann man auch sehr gut gebrauchen, um etwas zu verschlüsseln.
Siehe kleines Demo:
PHP-Code:
#define Key 123

char s[] = "Hello World !";

void setup() {
    
Serial.begin(9600);
}

void loop() {
    
Serial.println("Unverschlüsselt:");
    
Serial.println(s);
    
Serial.println();

    
int l sizeof(s);
    for (
int i 0li++) {
        
s[i] ^= Key// Char verschlüsseln
    
}
    
Serial.println("Verschlüsselt:");
    
Serial.println(s);
    
Serial.println();

    for (
int i 0li++) {
        
s[i] ^= Key// Char entschlüsseln
    
}
    
Serial.println("Entschlüsselt:");
    
Serial.println(s);
    
Serial.println();

    while (
true) {
          
// Endlosschleife
    
}

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.03.2018, 17:27
Beitrag #5
RE: XOR erklärt
Naja, Verschlüsselung würde ich das nicht nennen wollen, solange nicht ein Onetimekey genutzt wird, der genau so lang ist wie der zu verschlüsselnde Text. Sonst ist das maximal eine leichte Verschleierung.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Blink Without Delay - mal anders erklärt ardu_arne 9 10.633 10.02.2018 17:46
Letzter Beitrag: Claus_M

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste