Наконец, в РНР имеется несколько операторов,предназначенных для работы с отдельными битами в целых числах. Битовые операции спользуются обычно в достаточно сложных программах, например, когда требуется хранить в одном целом числе большое количество разнообразных двоичных признаков.
Замечание
Наряду с целыми числами, при помощи битовых операторов могут обрабатываться и строки. В этом случае преобразование осуществляется над ASCII-кодами символов
Перечень битовых операторов приведен в табл.2.2.
Оператор | Обозначение | Описание |
---|---|---|
Логическое «И» | $а & $b | Результатом являются биты, которые установлены и в $а, и в $b. |
Логическое «ИЛИ» | $а | $b | Результатом являются биты, которые установлены в $а или в $b. |
Исключающее «ИЛИ» | $а ^ $b | Результатом являются биты, которые установлены только в $а, или только в $b. |
Логическое "HE" | ~$а | Результатом являются биты, которые не установлены в $а. |
Сдвиг влево | $а << $b | Сдвиг битов $а на $b битов влево. Каждый сдвиг эквивалентен умножению на 2. |
Сдвиг вправо | $а >> $b | Сдвиг битов $а на $b битов вправо. Каждый сдвиг эквивалентен делению на 2. |
Например, рассмотрим оператор логического «ИЛИ», «|». Результатом его применения к двум целым числам является также целое число. Оно состоит
из бит, которые установлены хотя бы у одного из операндов оператора. Если $а = 1
(установлен 0-й бит числа), а $b = 2
(установлен 1-й бит числа), то $а | $b = 3
(установлен и 0-й, и 1-й бит).
Операторы двоичного сдвига эквивалентны умножению и делению на степени числа 2. Например, в результате сдвига 4 << 2
получится число 8 >> 2
получится число TRUE
и FALSE
.