---
title: Булева алгебра
seo:
  title: Булева алгебра — C++ Developer
  description: Тема «Булева алгебра» для собеседования C++ Developer. Какие есть битовые операции? Что такое булева алгебра?
---

[Все темы C++ Developer](/c-developer)

## <strong>Какие есть битовые операции?</strong> [#q-14bee738d69b81f984b6e172caf396c0]

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

{/* prettier-ignore */}
1. <strong>И (AND)</strong> - операция <code>&#38;</code>&#58;

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

    - Пример&#58; <code>5 &#38; 3</code> (0101 & 0011) возвращает <code>1</code> (0001).

1. <strong>ИЛИ (OR)</strong> - операция <code>&#124;</code>&#58;

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

    - Пример&#58; <code>5 &#124; 3</code> (0101 | 0011) возвращает <code>7</code> (0111).

1. <strong>Исключающее ИЛИ (XOR)</strong> - операция <code>&#94;</code>&#58;

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

    - Пример&#58; <code>5 &#94; 3</code> (0101 ^ 0011) возвращает <code>6</code> (0110).

1. <strong>НЕ (NOT)</strong> - операция <code>&#126;</code>&#58;

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

    - Пример&#58; <code>&#126;5</code> (~0101) возвращает <code>&#46;&#46;&#46;1010</code> (зависит от размера типа).

1. <strong>Сдвиг влево (Left Shift)</strong> - операция <code>&#60;&#60;</code>&#58;

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

    - Пример&#58; <code>5 &#60;&#60; 1</code> (0101 \<\< 1) возвращает <code>10</code> (1010).

1. <strong>Сдвиг вправо (Right Shift)</strong> - операция <code>&#62;&#62;</code>&#58;

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

    - Пример&#58; <code>5 &#62;&#62; 1</code> (0101 \>\> 1) возвращает <code>2</code> (0010).

:::note[Ссылки для изучения]

1. [Поразрядные операции в C++](https://metanit.com/cpp/tutorial/2.8.php)
   :::

---

## <strong>Что такое булева алгебра?</strong> [#q-14bee738d69b816a86b8d44852f6685b]

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

:::note[Ссылки для изучения]

1. [Булева алгебра простыми словами](https://blog.skillfactory.ru/glossary/buleva-algebra/)
   :::
