#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
- 255 reads