gpt4 book ai didi

c - 乘以 0.5 而不是除以 2

转载 作者:太空狗 更新时间:2023-10-29 16:34:40 25 4
gpt4 key购买 nike

当我阅读 C 语言的技巧时,我在这里看到了这个技巧 http://www.cprogramming.com/tips/tip/multiply-rather-than-divide但我不确定。有人告诉我,乘法和除法都比较慢且耗时,并且需要很多周期。

而且我看到人们经常使用 i << 2而不是 i x 4因为换档速度更快。

使用 x0.5 or /2 是个好提示吗? ?或者现代编译器确实以更好的方式对其进行了优化?

最佳答案

的确,某些(如果不是大多数)处理器的乘法运算速度比执行除法运算更快,但这就像 ++i 的神话比 i++ 快在一个for循环中。是的,它曾经是,但现在,编译器足够聪明,可以为您优化所有这些东西,所以您不应该再关心这个了。

关于位移位,移位曾经更快<< 2而不是乘以 4,但那些日子已经过去了,因为大多数处理器可以在一个时钟周期内乘以,就像移位操作一样。

一个很好的例子就是计算 VGA 中的像素地址 320x240模式。他们都这样做了:

address = x + (y << 8) + (y << 6)

将 y 与 320 相乘。在现代处理器上,这可能比只做更慢:

address = x + y * 320;

所以,只要写下您的想法,编译器就会完成剩下的工作:)

关于c - 乘以 0.5 而不是除以 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18165047/

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