#2. 7 php Битовые операторы

В РНР имеется несколько операторов,предназначенных для работы с отдельными битами в целых числах. Битовые операции спользуются обычно в достаточно сложных программах, например, когда требуется хранить в одном целом числе большое количество разнообразных двоичных признаков.

Замечание

Наряду с целыми числами, при помощи битовых операторов могут обрабатываться и строки. В этом случае преобразование осуществляется над 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.

Key Words for FKN + antitotal forum (CS VSU):