移位与PHP中的乘法
2022-08-30 20:00:06
我有以下代码:
<?php
$start = 1;
$timestart = microtime(1);
for ($i = 0; $i < 1000000; $i++) {
$result1 = $start * 4;
}
echo "\n";
echo microtime(1) - $timestart;
echo "\n";
$timestart = microtime(1);
for ($i = 0; $i < 1000000; $i++) {
$result2 = $start << 2;
}
echo "\n";
echo microtime(1) - $timestart;
echo "\n";
此输出:
0.14027094841003
0.12061500549316
我在互联网上发现了一个谷歌面试问题(我想申请一个开发人员,但我意识到我不能),其中一个问题问到最快的方法是乘以一个数字。我的第一个想法是使用这个标志,所以我测试了它。*
我的问题是,为什么位移比乘更快?