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

171
09 апреля 2022, 04:20

Потихоньку готовлюсь к ZEND 7.1 экзамену. Вот вопрос:

Напишите результат выполнения данного кода

<?php
$x = 7;
echo ~$x;

Ответ: -8

Почему?

Поиск по документации привел меня к побитовой инверсии, когда ~ делает например из 00010 строку 11101

Но как это связано с X = 7 и почему в результате получается -8?

Ниже дан хороший ответ про перевод 0111 (7 в двоичной системе) в 1000 (8 в двоичной системе), однако ответ не 8, а -8. Почему меняется знак? И почему ответ возвращается в виде числа 10-тичной системы (-8), а не 1000 (-1000) ?

Answer 1

7 в двоичной системе 0111

~ $a Отрицание Устанавливаются те биты, которые не установлены в $a, и наоборот.

0111 -> превращается в 1000 -> 8

READ ALSO
Не срабатывает js в infinite scroll

Не срабатывает js в infinite scroll

У меня на сайте подключен infinite scrollЯ решил поставить рекламные блоки, но они в js и не отображаются на последующих страницах подгружаемых AJAX

213
Найти совпадающие значения в N массивах Javascript

Найти совпадающие значения в N массивах Javascript

Допустим есть N массивов чисел, какие то могут быть совсем пустые, какие то длинной порядка 10-20 элементовКак найти общие элементы для всех...

349
Как размыть края изображения?

Как размыть края изображения?

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

173
Вывести ключ и значение массива each

Вывести ключ и значение массива each

Как в consolelog правильно вывести ключ FENOM и его значение FN338N ?

73