[英]Division by 1 in programming languages
那么如果我们告诉编程语言来计算这个:X / 1,其中X是任意数字。 他们实际上是计算输出还是检查/忽略1并返回X?
此外,当编码类似于上面的内容时,是否值得检查分频器是否为1还是更快才让它计算分频?
谢谢
为了详细说明这个问题:哪个更快?
$result = $number / $divisor;
要么
$result = $divisor > 1 ? $number / $divisor : $number;
大多数编程语言可能不会检查特殊除数(0除外)。
如今CPU的分区速度非常快,所以事先不值得检查。 检查可能需要比实际划分更长的时间。
比较示例(至少对于PHP):
<?php
$divisor = 1;
for ($i=0; $i<100000000; $i ++ ) {
if ($divisor != 1)
$a = $i / $divisor;
else
$a = $i;
}
在我的机器上需要6.9s
。 另一个:
<?php
$divisor = 1;
for ($i=0; $i<100000000; $i ++ ) {
$a = $i / $divisor;
}
只需5.2s
所以回答最后一个问题,哪个更快:让它计算分区:-)
因为检查和跳转+实际除法将比使用除法更多cpu指令,我很确定它只会被完成。
如果您的代码是变量/ 1(1是静态的),编译器很可能会优化它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.