Побитовые операторы в Python работают с битами и выполняют побитовую операцию. Допустим, если a = 60; и b = 13; в двоичном формате их значения будут 0011 1100 и 0000 1101 соответственно. В следующей таблице перечислены побитовые операторы, поддерживаемые языком Python, с примером каждого из них, мы используем две, указанные выше, переменные (a и b) в качестве операндов:
a = 0011 1100
b = 0000 1101
-----------------
a&b = 0000 1100
a|b = 0011 1101
a^b = 0011 0001
~a = 1100 0011
В языке Python поддерживаются следующие побитовые операторы:
Оператор | Описание | Пример |
& Двоичное AND | Оператор копирует бит в результат, если он существует в обоих операндах. | (a&b) (означает 0000 1100) |
| Двоичное OR | Он копирует бит, если он существует в любом из операндов. | (a | b) = 61 (означает 0011 1101) |
^ Двоичный XOR | Он копирует бит, если он установлен в одном операнде, но не в обоих. | (a^b) = 49 (означает 0011 0001) |
~ Двоичное дополнение | Он унарный и имеет эффект «переворачивания» битов. | (~a) = -61 (означает 1100 0011 в форме дополнения до 2 из-за двоичного числа со знаком. |
<< Двоичный сдвиг влево | Значение левого операнда сдвигается влево на количество битов, указанное правым операндом. | a << 2 = 240 (означает 1111 0000) |
>> Двоичный сдвиг вправо | Значение левого операнда перемещается вправо на количество бит, указанное правым операндом. | a>>2 = 15 (означает 0000 1111) |
Пример
#!/usr/bin/python
a = 60 # 60 = 0011 1100
b = 13 # 13 = 0000 1101
c = 0
c = a & b; # 12 = 0000 1100
print "Строка 1 - Значение c равно ", c
c = a | b; # 61 = 0011 1101
print "Строка 2 - Значение c равно ", c
c = a ^ b; # 49 = 0011 0001
print "Строка 3 - Значение c равно ", c
c = ~a; # -61 = 1100 0011
print "Строка 4 - Значение c равно ", c
c = a << 2; # 240 = 1111 0000
print "Строка 5 - Значение c равно ", c
c = a >> 2; # 15 = 0000 1111
print "Строка 6 - Значение c равно ", c
Когда вы выполните вышеуказанную программу, она даст следующий результат:
Строка 1 - Значение c равно 12
Строка 2 - Значение c равно 61
Строка 3 - Значение c равно 49
Строка 4 - Значение c равно -61
Строка 5 - Значение c равно 240
Строка 6 - Значение c равно 15
Источник: Python Bitwise Operators Example.
Оглавление
- 1. Python – Самоучитель для начинающих
- 2. Python – Обзор
- 3. Python – Установка среды
- 4. Python – Базовый синтаксис
- 4.1. Python – Аргументы командной строки
- 5. Python – Типы переменных
- 6. Python – Основные операторы
- 6.1. Python – Арифметические операторы
- 6.2. Python – Операторы сравнения
- 6.3. Python – Операторы присваивания: примеры
- 6.4. Python – Побитовые операторы
- 6.5. Python – Логические операторы
- 6.6. Python – Операторы членства
- 6.7. Python – Операторы идентификации
- 6.8. Python – Приоритет операторов
- 7. Python – Условные операторы
- 7.1. Python – Условие if
- 7.2. Python – Условные операторы if...else и elif
- 7.3. Python – Вложенные операторы if
- 8. Python – Циклы
- 8.1. Python – Цикл while
- 8.2. Python – Цикл for
- 8.3. Python – Вложенные циклы
- 8.4. Python – Оператор break
- 8.5. Python – Оператор continue
- 8.6. Python – Оператор pass
- 9. Python – Числа
- 9.1. Python – Метод abs()
- 9.2. Python – Метод ceil()
- 9.3. Python – Метод cmp()
- 9.4. Python – Метод exp()
- 9.5. Python – Метод fabs()
- 9.6. Python – Метод floor()
- 9.7. Python – Метод log()
- 9.8. Python – Метод log10()
- 9.9. Python – Метод max()
- 9.10. Python – Метод min()
- 9.11. Python – Метод modf()
- 9.12. Python – Метод pow()
- 9.13. Python – Метод round()
- 9.14. Python – Метод sqrt()
- 9.15. Python – Метод choice()
- 9.16. Python – Метод randrange()
- 9.17. Python – Метод random()
- 9.18. Python – Метод seed()
- 9.19. Python – Метод shuffle()
- 9.20. Python – Метод uniform()
- 9.21. Python – Метод acos()
- 9.22. Python – Метод asin()
- 9.23. Python – Метод atan()
- 9.24. Python – Метод atan2()
- 9.25. Python – Метод cos()
- 9.26. Python – Метод hypot()
- 9.27. Python – Метод sin()
- 9.28. Python – Метод tan()
- 9.29. Python – Метод degrees()
- 9.30. Python – Метод radians()