Вот моя проблема:
<?php
$a = ~5; //0101 => 1010
echo $a;//-6
Поскольку оператор Negate преобразует их в нули и нули в единицы, выход должен быть как минимум 10. Почему я получил -6 в качестве вывода?
Поскольку php использует 2-дополнение и обрабатывает ваш новый $a
как целое число со знаком.