Поразрядные операции с числами

Поразрядные операции с числами

@ProgHelpBot
  1. Логические операции
  2. Операции сдвига

Логические операции

Инверсия ~

Инвертирует число. Выражение ~x фактически аналогично -(x + 1).

a = 5
b = ~x

print(b)  # -6

Логическое умножение &

Производится поразрядно, и, если у обоих операндов значения разрядов равно 1, то операция возвращает 1, иначе возвращается 0.

a = 2  # 010
b = 5  # 101
c = a & b  # 000
print(c)  # 0

a = 4  # 100
b = 5  # 101
c = a & b  # 100
print(c, f"{c:0b}") # 4 100

Логическое сложение |

Производится поразрядно, и, если хотя бы у одного числа значение разряда равно 1, то операция возвращает 1, иначе возвращает 0.

a = 2  # 010
b = 5  # 101
c = a | b  # 111
print(c, f"{c:0b}")  # 7 111

a = 4  # 100
b = 5  # 101
c = a | b  # 101
print(c, f"{c:0b}")  # 5 101

Логическое исключающее ИЛИ ^

Производится поразрядно, и, если значения текущего разряда у обоих чисел разные, то возвращается 1, иначе возвращается 0.

a = 9  # 1001
b = 5  # 0101
c = a ^ b  # 1100

print(c, f"{c:0b}")  # 12 1100

Операции сдвига

Операции сдвига также производятся над разрядами чисел.

  • a << b - сдвигает число a влево на b разрядов.
  • a >> b - сдвигает число a вправо на b разрядов.
a = 16  # 10000
b = 2

c = a << b  # 1000000 (в двоичной)
print(c)  # 64 (в десятичной)

d = a >> b  # 100
print(d)  # 4


← Арифметические операции с числами

→ Условные выражения

Report Page