Битовая маска – определённые данные, которые используются для маскирования – выбора отдельных битов из двоичной строки. Подобное число будет означать истину или ложь, если этот бит принимает соответствующее значение (1
– true
, 0
– false
).
11111111 – однобайтовая, состоит из 8 бит, задает максимум 8 флагов (параметров).
11111111 11111111 11111111 11111111 – четырехбайтовая, состоит из 32 бит задает максимум 32 флага (параметра).
Каждый 1 бит принимает значение флага (какого-либо параметра).
Значения флагов (параметров)
Флаг8 | Флаг7 | Флаг6 | Флаг5 | Флаг4 | Флаг3 | Флаг2 | Флаг1 |
27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 |
128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
Далее флаги принимают значение равное: 2 в степени N-1, где N – порядковый номер флага.
Необходимо задать значение true
у 2 и 8 флагов.
- Получаем двоичное число 10000010, где 2 и 8 бит принимают значение "истина".
- Переводим двоичное число в десятичную систему счисления и получаем искомое значение битовой маски: 130.
Задано значение битовой маски: 36.
Чтобы посмотреть, какие флаги активны, переведем число 36 в двоичную систему счисления:
36/2=18 остаток 0
18/2=9 остаток 0
9/2=4 остаток 1
4/2=2 остаток 0
2/2=1 остаток 0
1/2=0 остаток 1
3610 = 001001002
Значение true
установлено у флагов 3, 6.
4(флаг3)+32(флаг 6)=36
Битовая маска используется для установки значений некоторых полей базы данных кассы, в объектах шаблонов документов.
В базе данных поле op_mode
задается при помощи битовой маски.
op_mode | int(11) | Свойства товара:
|
Чтобы задать товару свойства: запретить возврат товара и запретить возврат товара в чеке продажи, необходимо установить значение битовой маски равное 10(8+2).