Манипуляции с битами Python и методы маскирования

Бит — это фундаментальный блок для создания любого языка программирования. В этой статье мы рассмотрим способы, которыми Python предлагает манипулировать этими битами и накладывать на них причудливые маски.
Понимание битовых манипуляций в Python
Манипуляции с битами — это метод повышения скорости выполнения арифметических операций за счет рассмотрения числа как строки битов. Затем эти биты перемещаются туда-сюда, чтобы манипулировать их последовательностью и обеспечить желаемый результат. Этот метод используется в различных задачах, чтобы получить решение самым простым способом.
Также проверьте: 5 побитовых операций NumPy, которые нужно знать
Знакомство с битовой маскировкой в Python
Подобно нашим маскам для лица, битовые маски используются для покрытия значения. Затем можно сохранить это значение для секретных целей или также изменить его. Это замаскированное значение приобретает некоторое значение, поскольку служит представителем подмножеств при выполнении нескольких побитовых операций. Теперь, когда мы знаем, что такое манипулирование и маскировка, давайте теперь разберемся, как это можно сделать и какие ресурсы для этого необходимы.
Побитовые операторы Python
Ниже перечислены некоторые операторы Python, которые помогают жонглировать битами. Давайте посмотрим, как 0 и 1 изменяются с помощью этих операторов.
- И &
- ИЛИ |
- НЕ ~
- Исключающее ИЛИ ^
- Shift-влево <<
- ПРАВЫЙ SHIFT >>
Оператор И Python (&)
Только когда оба бита равны «1», вывод будет считаться истинным оператором И и будет возвращен «1», иначе вместо этого будет возвращен 0. Ниже приведены двоичные эквиваленты 6 и 2 вместе с соответствующими результатами при применении оператора И.
6 = 110
2 = 010
--------------
2 = 010
При запуске приведенного выше кода результат должен быть «2».
Оператор Python ИЛИ (|)
Этот оператор немного смягчен по сравнению с И и должен возвращать «1», даже если какой-либо из битов в данных входных данных равен «1». Но в случаях, когда оба равны 0, это считается ложным, и в качестве вывода возвращается «0».
6 = 110
2 = 010
--------------
6 = 110
Когда приведенный выше код запускается, он возвращает «6» в качестве результата, поскольку двоичный эквивалент после выполнения оператора ИЛИ такой же, как «6».
Читайте также: Оператор += в Python — полное руководство
Оператор НЕ Python (~)
Представьте себе человека, который всегда настаивает на противоположном тому, что вы говорите. То же самое относится и к оператору NOT. Он должен инвертировать значение (т.е.) отрицать данный ввод, который в этом случае должен был бы превратить 0 в 1 и наоборот.
Хотя числа могут быть как положительными, так и отрицательными, преобразование двоичных эквивалентов в их десятичные эквиваленты осуществляется с помощью метода, известного как дополнение до двух.
Проще говоря, для всех тех двоичных представлений, где ведущие биты образованы единицами, их десятичные эквиваленты считаются отрицательными.

Оператор XOR Python (^)
Этот оператор возвращает 1, когда один из входных битов равен 1, а если оба входных бита идентичны (т. е. оба равны 0 или оба равны 1), то он должен вернуть ‘0’.
13 = 1101
5 = 0101
--------------
8 = 1000
Выполнение приведенного выше кода должно вернуть «8» в качестве результата.
Python-оператор LEFT-SHIFT (<<)
Оператор LEFT-SHIFT может использоваться для сдвига битов влево на указанное количество разрядов, тем самым преобразуя его в двоичный эквивалент желаемого десятичного числа. Давайте посмотрим на приведенные ниже примеры, в которых мы собираемся сдвинуть биты двоичного числа 5 на два места.
Выполнение приведенного выше кода должно вернуть «20» в качестве результата. Хотите знать, почему?
Двоичный эквивалент 5 — это 0000 0101, который после сдвига на 2 разряда влево становится 0001 0100, представляющим десятичное число 20.
Еще одна интересная особенность оператора LEFT-SHIFT состоит в том, что он позволяет вывести степени числа 2. Например, если нужно найти nй степени 2, все, что нужно сделать, это сдвинуть 1 на число, умноженное на степень, как показано ниже.

Оператор Python-RIGHT-SHIFT (>>)
Это действие, обратное оператору LEFT-SHIFT, при котором биты перемещаются вправо на указанное количество позиций от их существующей позиции. В приведенном ниже примере давайте выполним сдвиг вправо для 5, переместив его на 2 места.
Выполнение приведенного выше кода должно вернуть «1» в качестве результата. Хотите знать, почему? Двоичный эквивалент 5 — это 000 0101, который после сдвига на 2 разряда вправо становится 0000 0001, представляющим десятичную 1.
Заключение
Теперь мы изучили различные методы Python для манипулирования битами и маскирования. Python предлагает ряд побитовых операторов, которые позволяют легко контролировать и манипулировать битами в числах.
Продолжая знакомство с Python, подумайте, как эти методы могут повысить эффективность вашего кода. Какие новые приложения вы можете представить, используя эти методы обработки битов в Python?
Ссылка
Ссылка на источник