PHP / MYSQL将unsigned int转换为signed int

时间:2013-03-25 16:27:32

标签: php mysql int signed

在mysql中:

select CAST(17640478426339470149 as SIGNED INTEGER); #-806265647370081467

在php中:

echo sprintf("%d", 17640478426339470149); #-806265647370082304

我将如何获得相同的签名int? (为什么会出现这种差异?)

1 个答案:

答案 0 :(得分:0)

我找到解决方案,我不确定,如果它是最佳的,但至少它是有效的。

echo gmp_strval(gmp_com(gmp_xor('17640478426339470149', '0xffffffffffffffff')));
#-806265647370081467