Xor dwa struny w Pythonie

Xor dwa struny w Pythonie

Podczas programowania w Python, „Xor„Operator jest wykorzystywany w kilku zadaniach. Na przykład, aby wykryć błędy lub problemy w transmisji danych za pomocą sumy kontrolnej, zastosuj szyfrowanie wiadomości lub odzyskaj niektóre bity z liczby. Mówiąc dokładniej, służy do porównywania dwóch zestawów danych lub ciągów i określania, czy są one podobne, czy mają pewne różnice.

Ten blog obejmie następujące aspekty:

  • Co to jest w Pythonie?
  • Jak Xor działa w Python?
  • Xor Tabela prawdy
  • Jak xor dwa struny w Pythonie?
  • Odpowiednie scenariusze spraw

Co to jest w Pythonie?

W Python „Xor" Lub "Wyłączne lub”Jest operatorem, który porównuje dwie liczby binarne bitowe. Ten operator zwraca „0„Jeśli oba bity są takie same. W przeciwnym razie wysyła „1”W przypadku różnych wartości. Wbudowany operator XOR Pythona pozwala nam logiczne łączenie dwóch wartości z pomocą ekskluzywnej lub operacji.

Jak Xor działa w Python?

Operator XOR jest reprezentowany jako „^„W Python i jest zgodny z podaną składnią:

xor_number = x ^ y

Tutaj, "x ”i„ y„Wskaż liczby binarne”^”Reprezentuje operatora Xor i„xor_number”Przechowuje wynikową wartość logiczną.

Xor Tabela prawdy

Aby dowiedzieć się więcej o pracy operatora Xor, spójrz na podany tabelę:

X y x ^ y
0 0 0
0 1 1
1 0 1
1 1 0

Jak xor dwa struny w Pythonie?

Ponieważ XOR jest operatorem bitowym, może działać tylko na liczbach całkowitych. Jednak aby wykonać operację XOR między dwoma ciągami, konieczne jest przekształcenie ich w odpowiednie wartości ASCII/Unicode przy użyciu „ord ()”Funkcja, a następnie zastosuj„^„Operator.

Uwzględniając trzy główne scenariusze przypadków, biorąc pod uwagę implikację operatora XOR dla wartości ciągu:

  • Przypadek 1: Oba ciągi zawierają wartości binarne.
  • Przypadek 2: Oba ciągi zawierają znaki.
  • Przypadek: 3: Jeden ciąg oparty jest na wartościach liczbowych/binarnych, a drugi zawiera znaki.

Praktycznie zademonstrujmy podane przypadki!

Przypadek 1: Zastosuj XOR na dwa ciągi o wartości binarnych

Aby zastosować operator XOR na dwa ciągi o wartości binarnych, najpierw zainicjuj je w następujący sposób:

string1 = "0100100"
string2 = "1001010"

Teraz dodaj następujące wiersze:

wynik = [(ord (a) ^ ord (b)) dla a, b w zip (string1, string2)]
Drukuj (wynik)

Zgodnie z danym kodem:

  • Wywołać „zamek błyskawiczny()”Funkcja z„Do„Pętla, aby tworzyć pary postaci”a ”,„ b”, Z„String1" I "String2".
  • Każda wygenerowana para jest następnie przekazywana do „ord ()”Funkcja, aby przekonwertować je na odpowiednie wartości ASCII.
  • "^”Wykonuje operację XOR na konwertowanych wartościach ASCII/Unicode i dołącza je do listy.
  • Wreszcie, wynikowa wartość jest przechowywana w „wynik”Zmienna i wyświetlana za pomocą„wydrukować()”Funkcja:

Można zaobserwować, że dla każdego samego indeksu obu ciągów, operator XOR wysyła się „0”, A dla różnych wartości„1”Jest zwrócony.

Przypadek 2: Zastosuj XOR na dwa sznurki z znakami

Teraz operator XOR jest stosowany na dwa ciągi o następujących wartościach znaków:

string1 = "dwa"
string2 = "dziesięć"
wynik = [(ord (a) ^ ord (b)) dla a, b w zip (string1, string2)]
Drukuj (wynik)

W tym przypadku „ord ()„Funkcja zwraca wartość ASCII dla każdego wygenerowanego i przekazuje ją do„^”, aby wykonać operację XOR:

Kolejnym najprostszym sposobem zapamiętania działania tej sprawy jest „ord ()”Funkcja zwraca wartość ASCII dla każdej pary, operator XOR wyświetla swoją wartość odjęta.

Na przykład:

  • Pierwszą postacią obu sznurków jest „T”, Którego wartość ASCII to„116”, Więc operator Xor zwrócił 0 (116-116).
  • Drugim postacią pierwszego ciągu to „w„Z wartością ASCII”119”, A dla drugiego ciągu„mi„Postać istnieje na tym samym indeksie o wartości ASCII”101". Dlatego operator XOR wychodzi 18 (119-101).
  • Przez ostatni kawałek pierwszy ciąg zawiera „o„Z wartością ASCII”111,”A drugi ciąg zawiera„N„Posiadanie„110„Wartość ASCII. W rezultacie operator XOR zwrócił 1 (111-110).

Przypadek 3: Zastosuj xor na dwa, gdy jeden ciąg zawiera znaki, a inne oparte na liczbach całkowitych/wartościach binarnych

Ostatni przypadek w trwającej dyskusji ma miejsce, gdy jeden ciąg zawiera znaki, takie jak „dwa”, A drugi zawiera liczby całkowite lub wartości binarne, takie jak„111”:

string1 = "dwa"
string2 = "111"
wynik = [chr (ord (a) ^ ord (b)) dla a, b w zip (string1, string2)]
wydrukuj (wynik);

Tutaj kod działa podobnie do drugiego przypadku. Z wyjątkiem tego, że zwrócone wartości ASCII zostały przekonwertowane na odpowiednie znaki za pomocą „CHR ()„Funkcja Pythona:

Zwracana lista reprezentuje znaki odpowiednich wartości ASCII.

Wniosek

W Python, Xor ”^" zwroty "0„Jeśli oba bity są takie same. W przeciwnym razie wysyła „1". Jednak oba ciągi zawierają znaki, wartości są przekształcane w ich reprezentację ASCII za pomocą „ord ()”Funkcja, a następnie stosuje się operator XOR. Ta sama operacja jest wykonywana, gdy oba ciągi zawierają różne typy danych, takie jak znaki i liczby całkowite. Tylko różnicowanie jest powołanie się na „CHR ()„Funkcja, aby uzyskać wynikową wartość w znakach. Ten blog pokazał, jak xor dwa struny w Pythonie.