0

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

更快的操作是什么?

1)操作1:使用if语句

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

2)运算2:使用按位运算(异或)

let x^=1
4

1 回答 1

2

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

无论如何,速度很大程度上取决于您选择使用的 shell 以及该 shell 的特定版本。标签建议使用 bash,但您实际上并没有说。

我能给出的唯一建议就是测试一下看看;为自己编写一个基准测试,执行一百万次,然后找出运行速度最快的基准测试。

然后,当您在 bash 中完成所有测试后,请尝试 dash。据说速度更快,但功能可能更少。

于 2013-07-17T11:16:01.113 回答