gpt4 book ai didi

python - if else 与数学映射小序列

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

我最近不得不将整数的符号转换为 -1 或 1

我想知道,是通过 if else 语句还是通过计算更快?

#if else#
s == -1 ? -1 : 1

#calculation#
ceil((s + 1) / 2) * 2 - 1

我知道这是一个非常简单的示例,但有时您需要映射更大的间隔,并且直觉上,似乎数学会更快,至少对于更小的间隔。

此外,相对速度如何受所用语言的影响(例如 Python 与 C)。

最佳答案

? 运算符会稍微快一些,因为它涉及的指令数量较少,而且我们现在的处理器通常足够聪明,不会破坏管道,尽管它看起来应该是这样的:

int r = (s < 0) ? -1 : 1;

括号是为了清楚起见。

如果 s 只能是 -1、0 或 1,我建议:

int v[] = { -1, 1, 1 };
int r = v[s+1];

这永远不会破坏 CPU 流水线。

关于python - if else 与数学映射小序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41257961/

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