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