Сегодня я просто сделал интересное открытие, проверяя, что происходит, вычисляя битво в php, как INF ^ 0 (^ = > Побитовый оператор для исключительного ИЛИ (XOR)), что дало мне int(-9223372036854775808) = > наибольшее возможное отрицательное значение в 64-битная система.
Но потом я спрашивал себя: "Почему результат будет отрицательным в XOR, когда" положительный бесконечность "означает 9223372036854775807 (63 бита на 1 с ведущим 0) и 0 (64 бита на 0 = > 0 xor 0 = 0) Что такое бесконечное значение PHP, хотя и что за ним вычисляется? И почему я получаю (правильное?) отрицательное значение, когда я использую" отрицательный бесконечный "(A 1 против ведущего 0 на 0 = > 1 xor 0 = 1?".
Еще один интересный момент в том, что это происходит только на PHP версии 5.5.9-1, а не напр. на 5.3.x. и 5.6.x(где я его протестировал)! Может, у кого-то есть идея, что там происходит? Протестировано в трех версиях, но только мои (5.5.9-1) дают такие результаты:
Просто, чтобы вы, ребята, знали, это просто абстрактный игровой процесс, который я сделал для удовольствия, но мне это интересно. Может быть, кто-то может помочь здесь или объяснить мне неправильную мысль? Просто скажите, нужно ли кому-то больше информации о чем угодно!
EDIT: В соответствии с jbafford было бы здорово получить полный ответ, поэтому я просто процитирую его: why does 5.5 and 5.6 result in PHP_INT_MIN, and everything else return 0?
