我正在阅读php_architects.zend.php_.5.certification.study.guide.2006
并想玩位移位。我有 64 位的 Ubuntu。这是我的代码:
$x = 1;
echo ($x << 64) . "\n";
echo $x * pow(2, 64) . "\n";
这个脚本的输出是:
1
1.844674407371E+19
由于类型转换,第二个结果是浮点数,很明显。但对于第一个,我期望 0 值。
为什么我得到 1 而不是 0?
UPD 又 做了一项测试:
echo ($x << 67) . "\n";
Gives: 8 看起来像骑自行车,但我希望去除位。