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

Материал из Викиреальностя
Перейти к: навигация, поиск

Побитовые операторы — операторы PHP, предназначенные для работы групп битов в целой переменной, то есть для снятия, установки или проверки групп битов.

Содержание

[править] Как двоичный код перевести в десятичный

В двоичной системе в десятичной
0000 0000 0000 0000 0000 0000 0000 0000 ноль
0000 0000 0000 0000 0000 0000 0000 0001 1
0000 0000 0000 0000 0000 0000 0000 0010 2
0000 0000 0000 0000 0000 0000 0000 0011 3
0000 0000 0000 0000 0000 0000 0000 0100 4
0000 0000 0000 0000 0000 0000 0000 0101 5
0000 0000 0000 0000 0000 0000 0000 1111 15

[править] Какие бывают побитовые операторы

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

Бывают случаи, когда прсутствуют и правый, и правый операторы строки. В таких ситуациях побитовые операции работают с их 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
?>

[править] Ссылки