Отрицательные биты не работают как ожидалось PHP

0

Вот моя проблема:

<?php
$a = ~5; //0101 => 1010
echo $a;//-6

Поскольку оператор Negate преобразует их в нули и нули в единицы, выход должен быть как минимум 10. Почему я получил -6 в качестве вывода?

Теги:
logical-operators
bitwise-operators

1 ответ

1

Поскольку php использует 2-дополнение и обрабатывает ваш новый $a как целое число со знаком.

См.: http://en.wikipedia.org/wiki/Two%27s_complement

Ещё вопросы

Сообщество Overcoder
Наверх
Меню