Побитовые операции над числами
💻 Информатика · 9 класс
Что такое побитовые операции
Побитовые операции — это действия, которые применяются к каждому биту числа в отдельности. Любое целое число хранится в памяти как набор битов (нулей и единиц) в двоичной системе. Побитовые операции позволяют управлять отдельными битами: включать их, выключать и проверять.
В отличие от обычного сложения, побитовая операция не переносит разряды — она обрабатывает каждую позицию независимо. Это делает такие операции очень быстрыми и удобными для кодирования и работы с признаками.
Основные операции
| Операция | Обозначение | Правило для двух битов |
|---|---|---|
| Побитовое И | and | 1 только если оба бита равны 1 |
| Побитовое ИЛИ | or | 1, если хотя бы один бит равен 1 |
| Исключающее ИЛИ | xor | 1, если биты различны |
| Сдвиг влево | shl | умножение на 2 за каждый сдвиг |
Как считать поразрядно
Возьмём числа 12 и 10. Запишем их в двоичном виде и применим побитовое И к каждому разряду:
12 = 1 1 0 0
10 = 1 0 1 0
and 1 0 0 0 = 8В каждом столбце результат равен 1 только там, где у обоих чисел стоят единицы. Получилось двоичное 1000, то есть число 8.
Сдвиги и быстрое умножение
Сдвиг битов влево на один разряд добавляет справа ноль и удваивает число. Так двоичное 101 (это 5) после сдвига влево становится 1010 (это 10). Сдвиг вправо, наоборот, делит число нацело на 2.
- Сдвиг влево на
kпозиций умножает число на 2 в степениk. - Сдвиг вправо на
kпозиций делит число нацело на 2 в степениk. - Эти операции работают быстрее обычного умножения и деления.
Где это применяют
Побитовые операции используют для хранения нескольких признаков в одном числе: каждый бит отвечает за отдельный признак — включён он или нет. Операция or включает бит, and проверяет его, а xor переключает на противоположное значение.
Запомни: исключающее ИЛИ обладает важным свойством — если применить xor к числу дважды с одним и тем же значением, исходное число восстановится. На этом основаны простые способы обмена значений и шифрования.Проверка отдельного бита
Чтобы узнать, включён ли определённый бит числа, используют побитовое И с маской — числом, в котором единица стоит только на нужной позиции. Если результат не равен нулю, бит был установлен. Например, чтобы проверить младший бит и определить чётность числа, достаточно применить and с единицей: если итог равен 1, число нечётное, если 0 — чётное.
Этот приём работает быстрее обычного деления с остатком и часто встречается в задачах, где важна экономия действий. Маску для нужного бита получают сдвигом единицы влево на номер этого бита.
Кратко о главном
- Побитовые операции применяются к каждому биту числа независимо.
- И даёт 1 при двух единицах, ИЛИ — при хотя бы одной, исключающее ИЛИ — при разных битах.
- Сдвиг влево удваивает число, сдвиг вправо делит его нацело на 2.
- Двойное применение исключающего ИЛИ возвращает исходное значение.