Битовые операции: трюки и задачи

Мы просто и по делу рассказываем про ИИ-инструменты для работы: сравнения, пошаговые гайды, бесплатные альтернативы и реальные сценарии применения. Помогаем выбрать между ChatGPT, Gemini, Claude, локальными моделями и десятками узкоспециализированных сервисов — от дизайна и HR до аналитики и SEO. Меньше хайпа, больше практики и экономии времени каждый день.

битовые операцииxorфлаги

Битовые операции — одна из самых недооценённых тем в IT. Их используют в алгоритмах, системном программировании, криптографии, сетях и даже на собеседованиях. Если понять базовые приёмы, можно писать код быстрее, короче и эффективнее.

Что такое битовые операции

Они работают с числами на уровне двоичного представления:

& — AND
| — OR
^ — XOR
~ — NOT
<< — сдвиг влево
>> — сдвиг вправо

Например, число 5 — это 101, а 3011.

Популярные трюки

  1. Проверка чётности

    n & 1

    Если результат 0 — число чётное, если 1 — нечётное.

  2. Умножение и деление на 2

    n << 1  → умножить на 2
    n >> 1  → разделить на 2

    Работает быстро, но важно учитывать знаковые числа.

  3. Проверка, является ли число степенью двойки

    n > 0 && (n & (n - 1)) == 0

    У степени двойки только один установленный бит.

  4. Удаление последнего установленного бита

    n & (n - 1)

    Полезно для подсчёта количества единичных битов.

  5. Получение последнего установленного бита

    n & -n

    Часто применяется в Fenwick Tree и битовых масках.

Где это реально применяют 🚀

  • работа с флагами и правами доступа
  • оптимизация памяти
  • маски состояний в задачах на DP
  • сжатие данных
  • низкоуровневый код и драйверы
  • обработка сетевых протоколов

Типовые задачи на собеседованиях

  1. Найти число, которое встречается один раз, если остальные встречаются дважды.

    Решение: XOR всех элементов. Одинаковые числа взаимно уничтожаются.

  2. Подсчитать количество единиц в числе.

    Можно циклом сдвигать число или использовать трюк:

    while (n) { n = n & (n - 1); count++; }
  3. Поменять местами значения без третьей переменной.

    Через XOR это возможно, но в продакшене такой код хуже читается, поэтому чаще берут обычный temp.

Частые ошибки ⚠️

  • путаница между логическими и битовыми операциями
  • ошибки со знаковыми числами при >>
  • забытый приоритет операторов — лучше ставить скобки
  • использование битовой магии там, где она ухудшает читаемость

Когда битовые операции действительно полезны

Если нужна производительность, компактное хранение данных или решение алгоритмической задачи — это отличный инструмент. Но ради “красивого трюка” применять их не стоит: поддерживаемость кода важнее.

Битовые операции — это не только тема для олимпиад и LeetCode. Это практический навык, который помогает лучше понимать, как данные устроены внутри машины 🧠

👀 Посмотрите подборку каналов про IT — там ещё больше практики, разборов и полезных материалов.

🗣 Подборки каналов
🧠 Каталог ботов и приложений
🗺 Навигация

Читайте так же