Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

Что делает оператор "^" в Python?

Data sciencePythonBig data
Анонимный вопрос
Data Science
  · 3,3 K
Пишу код и т.п.  · 12 мая 2022  · itustinov.ru
Python поддерживает перегрузку операторов, так что он может значить что угодно. У целых чисел это bitwise XOR.
Берутся два целых числа, представляются в двоичной системе счисления. Затем, справа налево между каждой парой битов производится исключающее ИЛИ.
Пример: числа 2 и 5 — это 10b и 101b.
Результат: 111b, т.е. 7.
Другой пример: числа 3 и 5 — это 11b и 101b.
Результат: 110b, т.е. 6.
Как устроен минус в бинарной форме, не уверен, т.к. оператор поддерживает большие числа. Предполагаю, что у больших операндов абсолютные значения в двоичной системе и биты знака обрабатываются раздельно. В общем, минус на минус всегда даёт плюс.
Почему справа налево, думаю, очевидно. На самом деле, все биты могут обрабатываться одновременно, просто более короткое число слева дополняется нулями.
1 эксперт согласен
Математик и программист Python.  · 15 июл 2022
Смотря какие типы у операндов.  Если числа - их исключающее ИЛИ. Вычисляется оно так. Оба числа записывают в двоичной системе. Если количества цифр неравны, в начале у "недостающего" числа дописывают нули. Дальше цифры Python сравнивает и результат записывает в итоговое число. Таблица результатов: 0 и 0 - 0 0 и 1 - 1 1 и 0 - 1 1 и 1 - 0. Например, 7 ^ 12 = 0111 ^ 1100 =... Читать далее
Технарь, эникейщик, CRM, DevOps, сети, железо, Unix, Windows, Bitrix24, AMOcem...  · 16 июл 2022
Обычно, это возведение в степень
Проводит побитовую операцию xor (исключающее или) на двух значениях. Здесь результатом ИЛИ НЕ для 10(2) и 11(3) будет 01(1).