Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
mysqlで:
select CAST(17640478426339470149 as SIGNED INTEGER); #-806265647370081467
PHPで:
echo sprintf("%d", 17640478426339470149); #-806265647370082304
どうすれば同じ signed int を取得できますか? (そして、なぜこの違いが生じるのですか?)
解決策を見つけましたが、それが最適かどうかはわかりませんが、少なくとも機能します。
echo gmp_strval(gmp_com(gmp_xor('17640478426339470149', '0xffffffffffffffff'))); #-806265647370081467