Dyzzet|
C++ Data Science Алгоритмы Темы · Блог · YouTube
§ 12. Побитовые операторы

Побитовые операторы используются для манипуляции отдельными битами числа или всеми сразу. Битовые маски применяются для кодирования параметров устройств и функций, для работы с IP-адресами и так далее.

Побитовый сдвиг влево: все биты сдвигаются влево, самый левый бит теряется, справа приписывается 0. Эквивалентно умножению на 2.

unsigned short a = 1093;        // 00000100 01000101 (1093)
unsigned short result = a << 1; // 00001000 10001010 (2186)

Побитовый сдвиг вправо: все биты сдвигаются вправо, самый правый бит теряется, слева приписывается 0. Эквивалентно делению на 2.

unsigned short a = 3511;        // 00001101 10110111 (3511)
unsigned short result = a >> 1; // 00000110 11011011 (1755)

Логическое побитовое отрицание: нули и единицы меняются местами.

unsigned short a = 5;           // 00000000 00000101 (5)
unsigned short result = ~a;     // 11111111 11111010 (65530)

Логическое побитовое умножение.

unsigned short b = 13;          // 00000000 00001101 (13)
unsigned short a = 563;         // 00000010 00110011 (563)
unsigned short result = a & b;  // 00000000 00000001 (1)

Логическое побитовое сложение.

unsigned short b = 13;          // 00000000 00001101 (13)
unsigned short a = 563;         // 00000010 00110011 (563)
unsigned short result = a | b;  // 00000010 00111111 (319)

Побитовое исключающее ИЛИ (XOR).

unsigned short b = 13;          // 00000000 00001101 (13)
unsigned short a = 563;         // 00000010 00110011 (563)
unsigned short result = a ^ b;  // 00000010 00111110 (574)

Конечно же, есть сокращённые версии операторов для специфических случаев.

foo <<= 1;  // foo = foo << 1;
foo >>= 1;  // foo = foo >> 1;
foo &= bar; // foo = foo & bar;
foo |= bar; // foo = foo | bar;
foo ^= bar; // foo = foo ^ bar;

Теперь, когда вы изучили самые разные операторы языка, ознакомьтесь с приоритетами операторов, воспользовавшись справочной литературой.

Зарегистрируйтесь и войдите, чтобы оставлять комментарии и голосовать.

Подмножество C++, совместимое с C
Конспект по языку C
Введение
Переменные и типы
Ввод и вывод
Арифметика
Управляющие конструкции
Функции
Массивы и указатели
Строки
Структуры, битовые поля и объединения
Работа с файлами
Классы памяти
Побитовые операторы
Препроцессор
Также может быть интересным
© MMXI—MMXXIII. RSS. Поддержать сайт
Светлая тема / тёмная тема