有一些奇怪的行爲我想知道如果有人能爲我清理。PHP中的十六進制否定,有趣的行爲
檢查出來
$hex = 0x80008000;
print_r(decbin(intval($hex)) . '<br/>');
print_r(decbin($hex));
輸出
10000000000000001000000000000000
10000000000000001000000000000000
正如預期的那樣。
但
$hex = 0x80008000;
print_r(decbin(~intval($hex)) . '<br/>');
print_r(decbin(~$hex));
輸出
1111111111111110111111111111111
1111111111111111111111111111111
時$hex
是否定的,爲什麼不切換中間位?
您使用的是什麼版本的PHP?第二種情況適用於我5.3.6 – 2012-03-08 20:13:52
我運行5.3.8並存在問題。 – Pateman 2012-03-08 20:17:13
我正在使用5.2.17 – Vigrond 2012-03-08 20:18:13