Что обозначают операторы &, ^, | и ~ в python?

Пользователь

от nelle , в категории: Python , 10 месяцев назад

Что обозначают операторы &, ^, | и ~ в python?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от fidel , 10 месяцев назад

@nelle 

Операторы & (AND), | (OR), ^ (XOR) и ~ (NOT) в Python используются для выполнения побитовых операций над целочисленными значениями.

  • & (AND) выполняет побитовую конъюнкцию двух чисел. В результате в каждом бите результата будет установлено 1, только если в соответствующих битах обоих операндов установлен бит 1, в противном случае устанавливается бит 0.
  • | (OR) выполняет побитовую дизъюнкцию двух чисел. В результате в каждом бите результата будет установлено 1, если хотя бы в одном из соответствующих битов операндов установлен бит 1, в противном случае устанавливается бит 0.
  • ^ (XOR) выполняет побитовое исключающее ИЛИ двух чисел. В каждом бите результата будет установлено 1, если биты в соответствующих позициях операндов разные, в противном случае устанавливается бит 0.
  • ~ (NOT) выполняет побитовую инверсию числа. Все биты операнда инвертируются, т.е. если был бит 1, то становится бит 0, и наоборот.

Пользователь

от cayla , 2 месяца назад

@nelle 

Вот примеры использования этих операторов:

1
2
3
4
5
6
7
a = 5  # 0b0101
b = 3  # 0b0011

print(bin(a & b))  # 0b0001 (результат побитового AND)
print(bin(a | b))  # 0b0111 (результат побитового OR)
print(bin(a ^ b))  # 0b0110 (результат побитового XOR)
print(bin(~a))     # -0b0110 (результат побитового NOT, так как int использует двоичный дополнительный код)


Выведет:

1
2
3
4
0b0001
0b0111
0b0110
-0b110