Для чего служит оператор ~ (тильда) в PHP?


Для подаются оператору ~ (тильда) в PHP?

Уже видел такие вещи, как:

echo ~PHP_INT_MAX

До сих пор я думал, что был для "обратный" номер на отрицательный, или что-то типа, но с тестами, я увидел, что ошибся.

Например:

echo ~2; //Imprime -3

echo ~5; //Imprime -6
Author: Maniero, 2015-08-03

1 answers

Является оператором отрицания bit bit. То есть, он меняет значение всех bits, дано в вопросе. Те, которые были 0 увидели 1 и те, которые были 1 просматривали 0. Его зовут bitwise not. Не путать с оператором логического отрицания !.

Он не отрицательное число, то есть унарный оператор, негативные.

, То число 2 может быть представлено в бинарных

00000010 //isto é 2 em binário

, Отрицая (реверсивный) bits находится:

11111101 //isto é -3 em binário

Сделал 8 - bits, упростить, вероятно, было бы больше bits. Если преобразовать это число в десятичное, вы получите эту -3.

Проанализировать, 2 является третьим по числу срабатываний, а также 3 третье число отрицательных. Есть разворот в этом направлении, но на самом деле идти от положительного к отрицательному, это вопрос, типа плашки.

Полезность его очень велика, в некоторых случаях, но большинство программисты не видят, когда он может быть использован, чтобы избежать математических mirabolantes. Просто часто бывает трудно увидеть.

, Когда вы видите это:

E_ALL & ~E_STRICT & ~E_WARNING & ~E_NOTICE

Считывает так: сплава все ошибки ВСЕ, но НЕ все ошибки, которые есть STRICT, также НЕ WARNING, а также НЕ NOTICE. Это выражение, которое приведет в число, которое будет использовано должным образом в PHP, чтобы понять, включен или нет. Человек понимает так, как я показал, но и для выбрать код будет рассмотрен bits, существующих в подходящей комбинации.

Документация.

 21
Author: Maniero, 2019-09-18 14:06:00