gpt4 book ai didi

linux - 取反数 : what is the fastest operation? 使用位运算还是使用 if 语句?

转载 作者:太空宇宙 更新时间:2023-11-04 09:44:36 24 4
gpt4 key购买 nike

我想在 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

最佳答案

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

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

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

然后,当您在 bash 中完成所有测试后,试试 dash。据说如果功能不那么丰富,速度会更快。

关于linux - 取反数 : what is the fastest operation? 使用位运算还是使用 if 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17697597/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com