誰かが私のために片付けてくれるかどうか疑問に思っていた奇妙な行動がありました。
見てみな
$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
がネゲートされたときに中間ビットが切り替わらないのはなぜですか?