logo

XOR двох змінних у Python

XOR або виняткове — це булева логічна операція, яка широко використовується в криптографії та генерує біти парності для перевірки помилок і відмовостійкості. Операція приймає два входи та створює один вихід. Традиційно ця операція порозрядна, але також може виконуватися логічно. Ця стаття навчить вас, як отримати логічне XOR двох змінних Python .

XOR двох чисел

Оскільки XOR є a побітовий оператор , він порівнюватиме біти обох цілих чисел порозрядно після перетворення їх у двійкові числа. Таблиця істинності для XOR (двійковий) показана нижче:



АБA⊕B
110
011
101
000

Формула операції XOR така:

XOR(A, B) = ( A .overline{B}) + (B.overline{A})>

Виконання XOR двох цілих чисел є тривіальним у Python, оскільки мова пропонує оператор, спеціально для цієї мети, а саме каретку ^. Але цю операцію також можна виконати за допомогою операторського модуля в Python.

Примітка: Кілька речей, про які слід пам’ятати під час виконання операції xor:



питання співбесіди мовою java
  • XOR має бути лише між однорідними елементами, тобто їхній тип даних має бути однаковим.
  • Bool рядка призведе до правда якщо рядок непорожній і помилковий якщо рядок порожній.

Тепер розглянемо операцію XOR для різних типів даних у Python.

XOR над цілими числами

Цілі числа спочатку перетворюються в двійкові, а потім кожен біт порівнюється один з одним. Остаточна відповідь потім знову перетворюється назад у вихідну форму цілого числа. Наступний код демонструє використання каретки для виконання XOR двох цілих змінних.

приклад: Спочатку було ініціалізовано дві змінні, що містять 10 і 27 цілих значень. Тоді xor двох змінних отримується за допомогою оператора каретки. Відобразиться результат операції.



Python
# First integer a = 10 # Second integer b = 27 # Performing the xor and storing the result in separate variable xor = a ^ b print(xor)>

Вихід:

17>

Часова складність: O(1)

Просторова складність: O(1)

XOR для логічного значення

XOR двох логічних змінних досить простий. Результатом операції XOR є 0 або 1, що представляє True або Flase відповідно в логічному форматі. Отже, щоб отримати логічне XOR логічного типу даних, у якості вхідних значень надається True або False.

команда у вузлі js

приклад: Спочатку дві логічні змінні були ініціалізовані значенням, а потім над ними виконується операція XOR за допомогою оператора каретки.

Python
# First boolean a = True # Second boolean b = False # Performing the xor operation xor = a ^ b print(xor)>

Вихід:

True>

Часова складність: O(1)

Просторова складність: O(1)

XOR для рядка

Оскільки рядки є послідовністю, тип даних потрібно нормалізувати, щоб над ними виконуватися операція. Таким чином, рядки будуть перетворені в bool, а потім над ними можна буде виконати операцію xor. Але завдяки цьому результат операції буде двійковим, тобто результатом буде будь-яке правда або помилковий (на відміну від xor цілих чисел, де створюється результуюче значення).

приклад: Спочатку визначаються два рядки. Один із них — порожній рядок. Потім рядки перетворюються на логічний тип даних, і над ними виконується операція xor. Відображається результат.

Python
# First string a = 'Hello World!' # Second string b = '' # Performing the xor operation xor = bool(a) ^ bool(b) print(xor)>

Вихід:

True>

Часова складність: O(n)

що таке стек Java

Складність простору: O(n), де n – довжина рядка

XOR двох змінних за допомогою операторського модуля

У Python є операторний модуль, який надає набір попередньо визначених функцій для арифметичних, логічних, побітових операторів і операторів порівняння. Він також надає функцію XOR порозрядного оператора, який можна використовувати для отримання XOR двох змінних.

приклад: Спочатку імпортуйте модуль оператора. Потім дві змінні ініціалізуються значенням, а потім над ними виконується операція XOR за допомогою функції xor модуля оператора.

Python
# import module import operator # First integer a = 10 # Second integer b = 27 # Performing the xor using operator module xor = operator.xor(a,b) print(xor)>

Вихід:

17>

Часова складність: O(1)

Рядок java містить

Просторова складність: O(1)

Поміняти місцями два цілих числа за допомогою XOR без тимчасової змінної

Побітову операцію XOR у Python також можна використовувати для обміну місцями двох цілих чисел без використання тимчасової змінної. Давайте подивимося, як це працює.

a = a ^ b b = a ^ b a = a ^ b>

Для заміни потрібні три вирази з операцією XOR.

  1. XOR двох цілих чисел 'а' і ' b' і зберегти його результат в ціле число 'а' себе.
  2. Тепер XOR оновлене значення 'а' з «b». Це призведе до початкового значення 'а' , який зараз зберігається в «б» .
  3. Нарешті, XOR 'а' з оновленим значенням «б» на попередньому кроці. Результатом буде вихідне значення «б» . який зараз зберігається в 'а' .

приклад: Спочатку ініціалізуються два цілих числа. Потім, використовуючи описані вище три кроки, заміна двох цілих чисел виконується за допомогою оператора каретки XOR. Нарешті, виведіть цілі числа, поміняні місцями.

Python
# First integer a = 10 # Second integer b = 27 print('Before Swapping:') print('a =', a) print('b =', b) # swapping integers using XOR a = a ^ b b = a ^ b a = a ^ b print('After Swapping:') print('a =', a) print('b =', b)>

Вихід:

Before Swapping: a = 10 b = 27 After Swapping: a = 27 b = 10>