Last active
August 16, 2022 10:39
-
-
Save VLogin/c7b11f891d539136617cd5f74e3e009b to your computer and use it in GitHub Desktop.
[Битовые операции в python] #python
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Битовые операторы Python | |
Эти операторы работают над операндами бит за битом. | |
Бинарное И (&) | |
Проводит побитовую операцию and над двумя значением. Здесь бинарная 2 — это 10, а 3 — 11. Результатом побитового and является 10 — бинарная 2. Побитовое and над 011(3) и 100(4) выдает результат 000(0). | |
Пример: | |
>>> 2&3 | |
2 | |
>>> 3&4 | |
0 | |
Бинарное ИЛИ (|) | |
Проводит побитовую операцию or на двух значениях. Здесь or для 10(2) и 11(3) возвращает 11(3). | |
Пример: | |
>>> 2|3 | |
3 | |
Бинарное ИЛИ НЕТ (^) | |
Проводит побитовую операцию xor (исключающее или) на двух значениях. Здесь результатом ИЛИ НЕ для 10(2) и 11(3) будет 01(1). | |
Пример: | |
>>> 2^3 | |
1 | |
Инвертирующий оператор (~) | |
Он возвращает инвертированные двоичные числа. Другими словами, переворачивает биты. Битовая 2 — это 00000010. Ее инвертированная версия — 11111101. Это бинарная -3. Поэтому результат -3. Похожим образом ~1 равняется -2. | |
Пример: | |
>>> ~-3 | |
2 | |
Еще раз, инвертированная -3 — это 2. | |
Бинарный сдвиг влево (<<) | |
Он сдвигает значение левого операнда на позицию, которая указана справа. Так, бинарная 2 — это 10. 2 << 2 сдвинет значение на две позиции влево и выйдет 1000 — это бинарная 8. | |
Пример: | |
>>> 2<<2 | |
8 | |
Бинарный сдвиг вправо (>>) | |
Сдвигает значение левого оператора на позицию, указанную справа. Так, бинарная 3 — это 11. 3 >> 2 сдвинет значение на два положение вправо. Результат — 00, то есть 0. 3 >> 1 сдвинет на одну позицию вправо, а результатом будет 01 — бинарная 1. | |
Пример: | |
>>> 3>>2 | |
>>> 3>>1 | |
1 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment