XOR або виняткове — це булева логічна операція, яка широко використовується в криптографії та генерує біти парності для перевірки помилок і відмовостійкості. Операція приймає два входи та створює один вихід. Традиційно ця операція порозрядна, але також може виконуватися логічно. Ця стаття навчить вас, як отримати логічне XOR двох змінних Python .
XOR двох чисел
Оскільки XOR є a побітовий оператор , він порівнюватиме біти обох цілих чисел порозрядно після перетворення їх у двійкові числа. Таблиця істинності для XOR (двійковий) показана нижче:
| А | Б | A⊕B |
|---|---|---|
| 1 | 1 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 0 | 0 | 0 |
Формула операції 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.
- XOR двох цілих чисел 'а' і ' b' і зберегти його результат в ціле число 'а' себе.
- Тепер XOR оновлене значення 'а' з «b». Це призведе до початкового значення 'а' , який зараз зберігається в «б» .
- Нарешті, 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>