gpt4 book ai didi

c++ - 哪个操作速度更快?

转载 作者:行者123 更新时间:2023-11-30 21:13:26 27 4
gpt4 key购买 nike

我有两个变量ab。我必须在变量a上编写一个if条件并且b:

这是第一种方法:

if(a > 0 || b >0){
//do some things
}

这是第二种方法:

if((a+b) > 0){
//do some thing
}

更新:考虑 a 和 b 是无符号的。那么在 逻辑或(||) 之间将花费更少的执行时间>算术 (+) 运算符

此条件将迭代大约一百万次
对此的任何帮助将不胜感激。

最佳答案

你的第二个条件是错误的。如果a=1, b=-1000,它将计算为false,而您的第一个条件将计算为true。一般来说,您不必担心此类测试的速度,编译器对条件进行了很多优化,因此逻辑 OR 非常快。一般来说,人们犯的错误比优化这些条件更大......所以除非你真的知道发生了什么,否则不要尝试优化,编译器通常比我们任何人都做得更好。

原则上,在第一个表达式中,您有 2 个 CMP 和一个 OR,而在第二个表达式中,您只有一个 CMP 和一个ADD,所以第二个应该更快(即使编译器在第一种情况下做了一些短路,但这不可能100%发生),但是在你的情况下,表达式不是等价(嗯,它们是正数......)。

关于c++ - 哪个操作速度更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23718597/

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