Перейти к содержимому
На этой странице

Булева алгебра

Все темы C++ Developer

Какие есть битовые операции?

Битовые операции в программировании работают непосредственно с битами данных, предоставляя мощный инструмент для манипуляции на низком уровне. Вот основные битовые операции, которые можно использовать в языках программирования, таких как C и C++:

  1. И (AND) - операция &:

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

    • Пример: 5 & 3 (0101 & 0011) возвращает 1 (0001).

  2. ИЛИ (OR) - операция |:

    • Возвращает 1 для бита, если хотя бы один из соответствующих битов в операндах равен 1.

    • Пример: 5 | 3 (0101 | 0011) возвращает 7 (0111).

  3. Исключающее ИЛИ (XOR) - операция ^:

    • Возвращает 1 для бита, если соответствующие биты в операндах различны.

    • Пример: 5 ^ 3 (0101 ^ 0011) возвращает 6 (0110).

  4. НЕ (NOT) - операция ~:

    • Инвертирует биты операнда; превращает 1 в 0 и наоборот.

    • Пример: ~5 (~0101) возвращает ...1010 (зависит от размера типа).

  5. Сдвиг влево (Left Shift) - операция <<:

    • Сдвигает биты влево на указанное количество позиций, вводя нули справа.

    • Пример: 5 << 1 (0101 << 1) возвращает 10 (1010).

  6. Сдвиг вправо (Right Shift) - операция >>:

    • Сдвигает биты вправо на указанное количество позиций. Поведение зависит от типа данных (знаковый или беззнаковый).

    • Пример: 5 >> 1 (0101 >> 1) возвращает 2 (0010).


Что такое булева алгебра?

Булева алгебра — это раздел математики, который занимается анализом переменных, которые принимают значения истина (true) или ложь (false). Она основана на системе логических операций, включая И (AND), ИЛИ (OR), НЕ (NOT), а также Исключающее ИЛИ (XOR). Булева алгебра широко применяется в информатике, цифровой схемотехнике и логическом программировании для проектирования и анализа логических схем, вычислительных систем и алгоритмов. Она позволяет описывать и упрощать логические выражения и условия.

Собеседования: C++

Смотри записи интервью, узнай, какие вопросы задают и как отвечают кандидаты.

Вопросы и ответы

Не нашли ответ? Напишите мне в чат. Я делаю Шпаргалку и сам отвечаю на сообщения. Расскажите, что не работает или чего вам не хватает. Может, смогу сразу взять это в работу.

Откуда взяты вопросы?

Из реальных собеседований. Основой подборки стал опыт Вадима Новосёлова: он проходил интервью и записывал вопросы. Подробнее о материалах.

Насколько эти вопросы актуальны?

Эти вопросы встречались нам на реальных собеседованиях в 2025 году. Мы регулярно проходим собеседования и пополняем подборку новыми вопросами. Основы профессии и ключевые технологии остаются востребованными годами, а детали конкретных инструментов и версий стоит сверять с текущей документацией.

На какой уровень рассчитана подборка?

Мы проходили собеседования на вакансии уровня Middle+, а иногда и на Senior-позиции. Вопросы из этих интервью вошли в подборку. Направления работы: C++-разработчик, Разработчик системного ПО. Глубина обсуждения зависит от вакансии: будь готов объяснить основную идею, привести практический пример и разобрать ограничения и альтернативы решения.

Этот вопрос точно будет на моём собеседовании?

Гарантии нет: набор вопросов зависит от компании, задач команды, уровня вакансии и самого интервьюера. Эти вопросы уже встречались на реальных собеседованиях, но на твоём интервью ту же тему могут проверить другой формулировкой, практической задачей или обсуждением твоего опыта. Используй подборку, чтобы разобраться в теме: объясняй идею своими словами, приводи примеры и готовься обсудить ограничения и альтернативы решения. Так будет проще ответить и на знакомый вопрос, и на неожиданные уточнения.