Estoy muy confundido acerca del comportamiento de la función de desplazamiento izquierdo de PHP. Lo estoy usando en dos máquinas diferentes (desarrollo y hosting), y me están dando respuestas diferentes. He rastreado hacia abajo para este cálculo:PHP Shift Shift dando dos respuestas en dos máquinas diferentes
(-3941404251) << 5;
En una máquina que estoy recibiendo la respuesta -1570884448; por el otro, obtengo 0. En ambos sistemas, PHP_INT_MAX = 2147483647. El último es un sistema de 32 bits, y el primero de 64 bits, aunque php se ejecuta como un proceso de 32 bits y aún da la misma respuesta.
Solo puedo suponer que esto es un problema con 32 bits frente a 64 bits, pero ¿hay alguna manera fácil de obtener el comportamiento deseado. Si alguien pudiera indicarme una función o algo así, sería genial.
Gracias!
bien, poner echo en frente de esa declaración produce lo mismo. (el contexto no es el problema). – Brendon
@Sarfraz: ha mostrado su código: '(-3941404251) << 5' ;;; @Brendon: reproduzco lo que describes: 0 en 32 bits y -1570884448 en 64 bits –