倒数:什么是最快的操作?使用按位运算还是使用if语句?

时间:2013-07-17 10:40:30

标签: linux bash shell bit-manipulation

我想在shell中反转一个数字。我的数字值只有2个可能的值:1和0.如果我的数字是1,我想反向0,如果它是0,我想将它反转为1

做什么可以更快的操作?

1)Operation1:使用if语句

if [ x -eq 1 ]; then
    x=0
else
    x=1
fi

2)Operation2:使用按位运算(xor)

let x^=1

1 个答案:

答案 0 :(得分:2)

如果您使用shell进行编程,那么速度肯定不是您最关心的问题吗?尤其不是像这样的微观优化。

在任何情况下,速度都将在很大程度上取决于您选择使用的shell以及该shell的特定版本。标签建议使用bash,但实际上并没有说。

我能给出的唯一建议是测试并看到;给自己写一个基准,这样做一百万次,然后找出最快的运行。

然后,当你在bash中测试完所有内容时,请尝试破折号。据说它可能更快,如果功能更少,也可能更少。