在编程语言中除以1

时间:2015-03-17 14:10:48

标签: division integer-division relational-division

那么如果我们告诉编程语言来计算这个: X / 1,其中X是任意数字。他们实际上是计算输出还是检查/忽略1并返回X?

此外,当编码类似于上面的内容时,是否值得检查分频器是否为1或者是否更快让它计算分频?

谢谢


为了详细说明这个问题:哪个更快?

$result = $number / $divisor;

$result = $divisor > 1 ? $number / $divisor : $number;

3 个答案:

答案 0 :(得分:2)

大多数编程语言可能不会检查特殊除数(0除外)。

现在CPU在分工方面非常快,所以事先不值得检查。检查可能需要比实际部门更长的时间。

答案 1 :(得分:2)

比较示例(至少对于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

所以回答最后一个问题,哪一个更快:让它计算分裂: - )

答案 2 :(得分:0)

由于检查和跳转+实际除法将比使用除法更多cpu指令,我很确定它只会完成。

如果您的代码是变量/ 1(1是静态的),编译器很可能会将其优化掉。