0
這裏無符號整數代碼:PHP的32位和64位平臺
echo sprintf('%u',-123);
而且這是在32位平臺上的輸出:
4294967173
,但在64位:
18446744073709551493
如何使它相同?說,int(10)無符號的
這裏無符號整數代碼:PHP的32位和64位平臺
echo sprintf('%u',-123);
而且這是在32位平臺上的輸出:
4294967173
,但在64位:
18446744073709551493
如何使它相同?說,int(10)無符號的
echo sprintf('-%u',abs(-123));
或
$n = -123;
echo sprintf("%s%u", $n < 0 ? "-":"", abs($n));
但如果你真的想看到僅限於32位負數的補無符號數只是做:
echo sprintf("%u", $n & 0xffffffff);
這將打印在所有系統上4294967173
。
查看我的回答this question的一些想法 - 簡而言之,您可以檢查PHP_INT_SIZE常量的值以在64位平臺上執行不同的處理。
取決於您實際*要*的輸出。我可以通過在兩者上使用'echo「foo」'來實現。 – 2009-09-28 12:48:47