Персональный блог
Побитовые операторы — арифметическая операция, которая отвечает за побитовый сдвиг в PHP.
Биты, сдвинутые за границы числа, отбрасываются. Сдвиг влево дополняет число нулями справа, сдвигая в то же время знаковый бит числа влево, что означает что знак операнда не сохраняется. Сдвиг вправо сохраняет копию сдвинутого знакового бита слева, что означает что знак операнда сохраняется.
Побитовые операторы в 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) |
Используйте скобки для обеспечения необходимого приоритета операторов. Например, $a & $b == true сначала проверяет на равенство, а потом выполняет побитовое и; тогда как ($a & $b) == true сначала выполняет побитовое и, а потом выполняет проверку на равенство.
Если оба операнда для &, | и ^ являются строками, то операция будет выполнена над ASCII значениями символов, составляющих эти строки, и результатом будет строка. В других случаях, оба операнда будут приведены к целому и результатом будет тоже целое число.
Если операнд для оператора ~ является строкой, то операция будет произведена над ASCII значением символов, составляющих эту строку, и результатом будет строка. Иначе, и операнд и результат будут оперироваться как целые числа.
Добавить комментарий