#2. 7 php Битовые операторы
Primary tabs
В РНР имеется несколько операторов,предназначенных для работы с отдельными битами в целых числах. Битовые операции спользуются обычно в достаточно сложных программах, например, когда требуется хранить в одном целом числе большое количество разнообразных двоичных признаков.
Замечание
Наряду с целыми числами, при помощи битовых операторов могут обрабатываться и строки. В этом случае преобразование осуществляется над ASCII-кодами символов
Перечень битовых операторов приведен в табл.1.
Таблица 1. Битовые операторы
| Оператор | Обозначение | Описание |
| Логическое «И» | \$а & \$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 получится число $16 = 4*2^2$, а в результате сдвига 8 >> 2 получится число $2 = 8 / 2^2$. Следует обратить внимание, что данные операторы манипулируют именно целыми числами, а не логическими значениями TRUE и FALSE.
- Log in to post comments
- 945 reads