poniedziałek,
Własności operacji XOR
Operacja XOR (exclusive OR, wykluczające LUB) posiada kilka charakterystycznych własności, które czynią ją wyjątkowo użyteczną w różnych dziedzinach, takich jak informatyka, elektronika i matematyka. Poniżej znajdziesz kilka z nich.
Przemienność
Kolejność operacji nie ma znaczenia, wynik XOR dwóch bitów jest taki sam niezależnie od kolejności argumentów, czyli A XOR B = B XOR A.
Łączność
Własność łączności operacji XOR oznacza, że jeśli mamy trzy wartości, A, B i C, to wynik ich sekwencyjnego XOR-owania nie zależy od kolejności wykonywania operacji. W praktyce oznacza to, że (A XOR B) XOR C jest równoważne A XOR (B XOR C). Można grupować bity w dowolny sposób, a wynik będzie taki sam.
Przykład
Załóżmy, że mamy trzy liczby binarne:
A = 1101
B = 1011
C = 0010
Obliczanie (A XOR B) XOR C:
Krok 1: A XOR B
1101 (A)
XOR 1011 (B)
---------
0110 (wynik)
Krok 2: (A XOR B) XOR C
0110 (wynik z kroku 1)
XOR 0010 (C)
---------
0100 (końcowy wynik)
Obliczanie A XOR (B XOR C):
Krok 1: B XOR C
1011 (B)
XOR 0010 (C)
---------
1001 (wynik)
Krok 2: A XOR (B XOR C)
1101 (A)
XOR 1001 (wynik z kroku 1)
---------
0100 (końcowy wynik)
W obu przypadkach końcowy wynik to 0100
. To potwierdza własność łączności operacji XOR – niezależnie od kolejności wykonywania operacji, wynik pozostaje taki sam.
Element neutralny
Elementem neutralnym w operacji XOR (exclusive OR) jest 0. To znaczy, że XOR dowolnej liczby z 0 zawsze zwróci tę samą liczbę. W kontekście binarnym, oznacza to, że każdy bit pozostaje niezmieniony, gdy jest poddany operacji XOR z 0. Mówiąc krótko – XOR z zerem nie zmienia wartości bitu.
Operacja XOR liczby 10101010 i 00000000
10101010
XOR 00000000
-----------
10101010
Jak widać, wynik operacji to dokładnie ta sama liczba, z którą zaczęliśmy, co potwierdza, że 0 jest elementem neutralnym w operacji XOR.
Element odwrotny
Elementem odwrotnym w operacji XOR jest liczba sama w sobie. Oznacza to, że wykonanie operacji XOR dowolnej liczby z tą samą liczbą zawsze da w wyniku 0. To właściwość jest szczególnie użyteczna, gdyż umożliwia „anulowanie” efektu operacji XOR poprzez jej powtórzenie z tym samym operandem.
Liczba 11001100
i operacja XOR z tą samą liczbą:
11001100
XOR 11001100
-----------
00000000
Wynik operacji to 00000000
, co potwierdza, że każdy bit jest swoim własnym elementem odwrotnym w operacji XOR. Wynik ten wynika z faktu, że XOR zwraca 1 tylko wtedy, gdy porównywane bity są różne; w przeciwnym razie wynikiem jest 0. Ponieważ każdy bit jest taki sam w obu liczbach, wynik jest zawsze 0.
„Anulowanie” operacji XOR polega na ponownym zastosowaniu tej samej operacji na wynik z oryginalnym operandem. Jest to możliwe dzięki własności odwracalności XOR, gdzie operacja XOR dwóch tych samych liczb daje zawsze 0. Rozważmy przykład, gdzie anulujemy operację XOR. Załóżmy, że mamy dwie liczby binarne A
i B
i wykonaliśmy na nich operację XOR, otrzymując C
.
A = 11001100
B = 10101010
C = A XOR B
C
wynosi 01100110
. Teraz, aby anulować operację i odzyskać A
, zastosujemy operację XOR ponownie, ale tym razem między C
i B
.
01100110 (C)
XOR 10101010 (B)
-----------
11001100 (A)
Wynik operacji to początkowa wartość A
. To pokazuje, że operacja XOR może być anulowana poprzez ponownie jej wykonanie z jednym z oryginalnych operandów.
Wpływ na parzystość
XOR dwóch liczb o tej samej parzystości zawsze da w wyniku liczbę parzystą, a XOR dwóch liczb o różnej parzystości da w wyniku liczbę nieparzystą.
Samoodwracalność
Samoodwracalność operacji XOR oznacza, że można użyć tej samej operacji do odwrócenia efektu poprzedniego zastosowania XOR. Dzięki temu XOR jest często stosowany w prostych systemach szyfrowania i deszyfrowania danych. Przykładem samoodwracalności może być zaszyfrowanie wiadomości, a następnie jej odszyfrowanie za pomocą tej samej kluczowej wartości.
Załóżmy, że mamy wiadomość M
i klucz K
. Szyfrujemy M
za pomocą K
, a następnie deszyfrujemy ją, ponownie stosując K
.
Szyfrowanie
M = 11001100 (wiadomość)
K = 10101010 (klucz)
Zaszyfrowana wiadomość (C) = M XOR K
Wynik:
11001100 (M)
XOR 10101010 (K)
-----------
01100110 (C)
Deszyfrowanie
Zaszyfrowana wiadomość (C) = 01100110
K = 10101010 (ten sam klucz)
Deszyfrowana wiadomość = C XOR K
Wynik:
01100110 (C)
XOR 10101010 (K)
-----------
11001100 (M)
W wyniku deszyfrowania otrzymujemy oryginalną wiadomość M
. To pokazuje, jak XOR może być używany do szyfrowania i deszyfrowania informacji za pomocą tego samego klucza, ilustrując jego samoodwracalność.
Określenia terminu „samoodwracalność”
Inne określenia terminu „samoodwracalność”, szczególnie w kontekście operacji XOR, to:
- inwolucyjność – termin techniczny opisujący funkcję, która jest swoim własnym odwrotnością;
- rewersybilność – oznacza możliwość odwrócenia operacji do stanu początkowego;
- symetria odwracalna – podkreśla, że proces odwracania jest symetryczny;
- autorewersja – termin nieformalny, który podkreśla zdolność operacji do odwracania samej siebie;
- samoinwersja – określa operację, która jest swoją własną inwersją.
Wszystkie te określenia mogą być używane do opisania właściwości operacji XOR, gdzie stosowanie tej samej operacji na jej wynik z powrotem daje stan początkowy.