Битовые операции: маски, флаги и двоичная логика
Битовые операции работают с двоичным представлением чисел. Они встречаются в школьной информатике рядом с системами счисления, логикой, кодированием и олимпиадными задачами.
Основные операции:
&— побитовое И;|— побитовое ИЛИ;^— исключающее ИЛИ;<<— сдвиг влево;>>— сдвиг вправо.
Проверка четности и отдельных битов
Число четное, если его последний двоичный бит равен 0.
number = int(input())
if number & 1 == 0:
print('четное')
else:
print('нечетное')Чтобы проверить k-й бит, используют маску 1 << k.
number = 13
k = 2
if number & (1 << k):
print('бит установлен')
else:
print('бит не установлен')Число 13 в двоичной системе — 1101, поэтому бит с номером 2 установлен.
Флаги в одной переменной
Маска позволяет хранить несколько признаков в одном числе. Например, ученик решил задачи 0, 2 и 3.
mask = 0
mask |= 1 << 0
mask |= 1 << 2
mask |= 1 << 3
print(bin(mask))Когда это полезно
Битовые операции нужны не в каждой школьной задаче, но они хорошо связывают программирование с устройством компьютера. Они помогают понять двоичную запись, логические операции, кодирование признаков и перебор подмножеств.
Начинайте с простых проверок: четность, количество единиц в двоичной записи, установка и снятие бита. После этого маски перестают выглядеть магией и становятся компактным инструментом.
Источники
- Босова Л.Л. Информатика. Базовый курс: учебник для 7-9 классов. - М.: БИНОМ. Лаборатория знаний.
- Поляков К.Ю., Еремин Е.А. Информатика. 10-11 классы. Углубленный уровень.
- Python Documentation: The Python Tutorial.