Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Основы PHP. Операторы. Битовые операторы



Побитовые операторы позволяют считывать и устанавливать конкретные биты целых чисел.

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

Побитовый сдвиг в PHP - это арифметическая операция. Биты, сдвинутые за границы числа, отбрасываются. Сдвиг влево дополняет число нулями справа, сдвигая в то же время знаковый бит числа влево, что означает что знак операнда не сохраняется. Сдвиг вправо сохраняет копию сдвинутого знакового бита слева, что означает что знак операнда сохраняется.

Используйте скобки для обеспечения необходимого приоритета операторов. Например, $a & $b == trueсначала проверяет на равенство, а потом выполняет побитовое и; тогда как ($a & $b) == true сначала выполняет побитовое и, а потом выполняет проверку на равенство.

Не забывайте о преобразовании типов данных. Если оба, и левый и правый операнды являются строками, побитовый оператор будет работать с ASCII значениями символов этих строк.

Опция настроек PHP error_reporting использует побитовые значения,

обеспечивая реальную демонстрацию гашения значений битов.

Чтобы показать все ошибки кроме замечаний,

инструкции в файле php.ini предлагают использовать:

E_ALL & ~E_NOTICE

Начинаем со значения E_ALL:

Затем берем значение E_NOTICE...

... и инвертируем его с помощью ~:

Наконец, используем побитовое И (&), чтобы установить только те биты,

которые установлены в единицу в обоих значениях:

Другой способ достичь этого - использовать ИСКЛЮЧАЮЩЕЕ ИЛИ (XOR, ^),

чтобы получить только те биты, которые установлены в единицу

либо только в одном, либо только в другом значении:

E_ALL ^ E_NOTICE

Опция error_reporting также может быть использована для демонстрации

установки битов. Показать только ошибки и обрабатываемые ошибки можно

следующим образом:

E_ERROR | E_RECOVERABLE_ERROR

Здесь мы комбинируем E_ERROR

и

с помощью оператора ИЛИ (OR, |),

чтобы получить биты, установленные хотя бы в одном операнде:






Дата публикования: 2015-01-24; Прочитано: 215 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.005 с)...