Tengo una cadena en PHP (proviene de alguna fuente de datos), que representa un entero formateado sin signo de 32 bits. Necesito almacenarlo en una base de datos MySQL como con signo entero de 32 bits, para que luego pueda recuperarlo de PHP y usarlo como una constante entera con signo (posiblemente negativa) (ya que PHP no tiene enteros sin signo))Cómo convertir un entero de 32 bits de unsigned a firmado en MySQL o PHP?
Entonces, lo que necesito es un método de conversión, ya sea para PHP o MySQL. No debe depender de la plataforma (sin problemas endian/32/64-bit).
sé cómo convertir un entero sin signo en el uso de MySQL:
select CAST((-1062726980 & 0xFFFFFFFF) AS UNSIGNED INTEGER);
+------------------------------------------------------+
| CAST((-1062726980 & 0xFFFFFFFF) AS UNSIGNED INTEGER) |
+------------------------------------------------------+
| 3232240316 |
+------------------------------------------------------+
pero no puedo conseguir que funcione a la inversa (nota: MySQL usa la aritmética de 64 bits al hacer moldes).
Gracias.
Lo sentimos, pero eso no funcionará en algunos sistemas de 64 bits, donde PHP int es de 64 bits de manera predeterminada. – Alex