Сегодня столкнулся. http://bugs.php.net/bug.php?id=36306 Не могу понять почему Actual result: -------------- On 64-bit platform i see 3436838502 On 32-bit -858128794 актуальные результаты одной и той же функции на разных платформах должны отличаться? Мы же считаем CRC32 - т.е. 32 битную. И она должна быть на всех платформа одинакова... Или я чего то недопонимаю.
все правильно. в 32-х разрядной перменной старший бит отводится для знака. В 64-х разрядной переменной знаковый бит - 63-й. фактически это одно и то же число. переведи в хекс и увидишь
Правильно Но CRC32 на то и 32 а не 64. И на выходе int со знаком. Т.е. к платформе привязки не должно быть.
Так в том и дело что баг написан для 4-й версии где CRC32 считалось (по моему мнению) правильно. Но исправлен был как для 5-й версии.