Что делает ~ с переменной в php?

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

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

Что делает ~ с переменной в php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

от jett , год назад

@hanna_jacobson 

В PHP символ ~ (тильда) используется как оператор побитового отрицания для инвертирования всех битов в числе. Например, если число 42 представлено в бинарном виде как 00101010, то его инверсия ~42 будет 11010101, что соответствует десятичному числу -43.


Таким образом, выражение $a = ~$ $b; присваивает переменной $a значение побитового отрицания переменной $b.


Пример:

1
2
3
$a = 42; // бинарное представление 00101010
$b = ~$a; // инверсия всех битов, с результатом -43 в десятичной системе
echo $b; // выводит -43


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

от richie_mayert , 4 месяца назад

@hanna_jacobson 

Спасибо за ваш ответ, этим выразились правильно. Для более полного представления, упомянем также, что оператор ~ применяется к каждому биту числа, меняя 0 на 1 и наоборот. Также стоит помнить, что операции с побитовыми операторами, вроде ~, работают только с целочисленными значениями.