我遇到了一些奇怪的行为,希望有人能帮我澄清一下。
看看这个:
$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
时,中间的位没有切换?
print_r(~$hex)
和print_r(~intval($hex))
,你会得到什么? - Damp