Что такое "<<" и "|" в php?

Пользователь

от marc_zboncak , в категории: PHP , 2 года назад

Что такое "<<" и "|" в php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от marlen , 2 года назад

@marc_zboncak 

"<<" и "|" в PHP - это операторы битового сдвига и побитовой логической операции OR соответственно.


Оператор "<<" используется для сдвига битового представления числа влево на определенное количество позиций, что эквивалентно умножению на 2 в степени n, где n - количество позиций сдвига.


Оператор "|" используется для выполнения побитовой логической операции OR между двумя числами. Результатом является число, в котором биты установлены в 1, если они установлены в 1 хотя бы в одном из операндов.


Примеры:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
$number = 4; // бинарное представление: 100

// Сдвиг влево на 2 позиции (эквивалентно умножению на 2 в степени 2)
$result = $number << 2; // бинарное представление: 10000 (двоичное) или 16 (десятичное)
echo $result;

$a = 5; // бинарное представление: 101
$b = 3; // бинарное представление: 011

// Побитовая операция OR
$result = $a | $b; // бинарное представление: 111 (двоичное) или 7 (десятичное)
echo $result;


Пользователь

от evalyn.barrows , год назад

@marc_zboncak 

Оператор "<<" (левый сдвиг) используется для сдвига битов числа влево на определенное количество позиций. Например, выражение 4 << 1 сдвигает число 4 (100 в двоичном представлении) на одну позицию влево и возвращает результат 8 (1000 в двоичном представлении). Это эквивалентно умножению исходного числа на 2 в степени n, где n - количество позиций сдвига.


Оператор "|" (побитовое или) используется для выполнения побитовой логической операции OR между двумя числами. Результатом будет число, в котором биты установлены в 1, если они установлены в 1 хотя бы в одном из операндов. Например, выражение 5 | 3 возвращает значение 7, так как 5 (101 в двоичной системе) и 3 (011 в двоичной системе) имеют пересекающиеся биты, которые устанавливаются в 1 в результате.


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