Для начала определимся, какие биты нашей
переменной каким целям будут служить.
Допустим, мы хотим хранить в переменной
информацию о шрифте. При этом у нас есть
такой расклад:
7 бит - италик (наклонный)
6 бит - жирный
5 бит - инверсный
4 бит - подчеркнутый
3 бит - двойное подчеркивание
2 бит - зарезервирован
1 бит - зарезервирован
0 бит - зарезервирован
Теперь чтобы установить тип шрифта как
наклонный, нам нужно всего лишь установить
7-й бит в единицу, то есть присвоить
переменной число 128: $textAttr=128.
Теперь давайте попробуем установить шрифт как наклонный, но в то же время и подчеркнутый. За подчеркнутый шрифт у нас отвечает бит номер 4, и если он установлен в единицу, то значение переменной равно 16. Чтобы скомбинировать значения 128 и 16 в этой переменной, мы применим битовый оператор "|" - $textAttr=128|16. То же при использовании двоичных чисел - $textAttr=10000000|00010000 (что будет равно 10010000). То есть, у нас биты номер 7 и номер 4 установлены в единицу, что подразумевает использование наклонного подчеркнутого шрифта. Если получившееся значение перевести в десятичную систему, то получим число 144.
Следующий пример показывает, как теперь выключить использование наклонного шрифта. Для этого используем оператор "Исключающее ИЛИ": $textAttr=$textAttr^128.