Битовая маска
Битовая маска — определённые данные, которые используются для маскирования — выбора отдельных битов или полей из нескольких битов из двоичной строки или числа.
Операции с битовой маской
Получение значения бита
Битовую маску возможно использовать для получения значения бита. Для этого нужно отключить все остальные биты с помощью побитового логического «И» (конъюнкции).
Например, для получения значения пятого бита (считая слева) числа 10111011 нужно использовать маску 00001000. В результате получится:
10111011 & 00001000 = 00001000
Подобное число в языках, использующих вместо логического типа числовые типы, например в Си, будет означать истину или ложь, если этот бит принимает соответствующее значение. В языках, имеющих логические типы (например, C++), необходимо произвести приведение типа.
Использование
Основные плюсы и недостатки:
- Экономия памяти — требуется бит для хранения информации, а не байт.
Сфера использования в основном в интерфейсах, где приоритет отдаётся экономии памяти:
- выбор битов из слова состояния, идущие с пакетом по интерфейсу, например, контрольная сумма;
- выбор битов из IP-адреса для адресации подсети (см. маска подсети) 255.255.224.0