Руководство по PHP
Пред. | Глава 15. Операторы | След.

# Побитовые операторы

Побитовые операторы позволяют устанавливать конкретные биты в 0 или 1 для целочисленных значений. В случае если и левый, и правый операнды строки, побитовые операции будут работать с их ASCII-представлениями.

`<?php echo 12 ^ 9; // Выведет '5' echo "12" ^ "9"; // Отобразит симовол возврата каретки (ascii 8) // ('1' (ascii 49)) ^ ('9' (ascii 57)) = #8 echo "hallo" ^ "hello"; // Выведет следующие ASCII-значения: #0 #4 #0 #0 #0 // 'a' ^ 'e' = #4 ?>`

Таблица 15-3. Побитовые операторы

Пример | Название | Результат
--- | --- | ---
$a & $b | Побитовое 'и' | Устанавливаются только те биты, которые установлены и в $a, и в $b.
$a | $b | Побитовое 'или' | Устанавливаются те биты, которые установлены либо в $a, либо в $b.
$a ^ $b | Исключающее или | Устанавливаются только те биты, которые установлены либо только в $a, либо только в $b
~ $a | Отрицание | Устанавливаются те биты, которые в $a не установлены, и наоборот.
$a << $b | Сдвиг влево | Все биты переменной $a сдвигаються на $b позиций влево (каждая позиция подразумевает 'умножение на 2')
$a >> $b | Сдвиг вправо | Все биты переменной $a сдвигаються на $b позиций вправо (каждая позиция подразумевает 'деление на 2')

Внимание
Не используйте сдвиг вправо более чем на 32 бита на тридцатидвухразрядных системах. Не используйте сдвиг вправо для получения чисел, требующих для записи более ридцатидвух бит.

Пред. | Начало | След.
Оператор присвоения | Уровень выше | Операторы сравнения