标签: php unsigned printf signed
简单脚本,PHP 5.3.13,Windows 8,x32
<?php var_dump(sprintf('%u', -1380556906));
它给了我正确的结果
string(10) "2914410390"
与PHP 5.4.11相同,Freebsd 9.1,x64给出了
string(20) "18446744072328994710"
为什么呢?如何将signed int打印为unsigned int?
答案 0 :(得分:0)
@Barmar在评论中给出了答案。
您遇到无符号整数溢出。
然而,由于整数大小可能因架构而异,因此either 32 or 64 bits long。