Я очень озадачен поведением функции левого смещения PHP. Я использую его на двух разных машинах (dev и hosting), и они дают мне разные ответы. Я проследил это до этого расчета:
(-3941404251) << 5;
На одной машине я получаю ответ -1570884448; с другой стороны, я получаю 0. В обеих системах PHP_INT_MAX = 2147483647. Последним является 32-разрядная система, а первым - 64-разрядная, хотя php работает как 32-разрядный процесс и по-прежнему дает одинаковый ответ.
Я могу только предположить, что это проблема с 32-разрядным по сравнению с 64-разрядным, но есть ли простой способ получить желаемое поведение. Если бы кто-то мог указать мне на функцию или что-то, это было бы здорово.
Спасибо!