我在 PHP 中有一个字符串(来自某些数据源),它表示一个格式化的无符号 32 位整数。我需要将它作为带符号的32 位整数存储到 MySQL 数据库中,以便稍后我可以从 PHP 中检索它并将其用作(可能为负的)有符号整数常量(因为 PHP 没有无符号整数)。
所以,我需要的是一种转换方法,适用于 PHP 或 MySQL。它不应该依赖于平台(没有字节序/ 32/64 位问题)。
我知道如何使用 MySQL 将有符号整数转换为无符号整数:
select CAST((-1062726980 & 0xFFFFFFFF) AS UNSIGNED INTEGER);
+------------------------------------------------------+
| CAST((-1062726980 & 0xFFFFFFFF) AS UNSIGNED INTEGER) |
+------------------------------------------------------+
| 3232240316 |
+------------------------------------------------------+
但我不能让它反过来工作(注意:MySQL 在进行强制转换时使用 64 位算术)。
谢谢。