gpt4 book ai didi

c++ - 通过查看最后一位来检查数字是否为偶数 - 是否有其他类似的 "tricks"?

转载 作者:可可西里 更新时间:2023-11-01 18:01:49 27 4
gpt4 key购买 nike

最近我发现,如果我需要查看变量是否为偶数(或奇数),我可以只查看变量的最后一位是否等于 0。这一发现在实现后取代了一些 modulo 2 计算,因此整个函数运行得更快。

是否有任何其他像这个一样的“技巧”,其中使用位可以代替其他计算,从而缩短函数执行时间?

最佳答案

我怀疑用等效的按位运算代替模二计算会产生更快的执行时间。任何称职的 C++ 编译器都会将 n % 2n & 1 编译成相同的机器指令。

当心使用位旋转黑客作为优化。首先,并不总是很清楚你正在优化的功能是一个瓶颈。其次,生成的代码通常更难维护,更可能不正确或有细微的错误。这就是高德纳 (Knuth) 的名言“我们应该忘记效率低下,大约 97% 的时间:过早优化是万恶之源”的意思。节省您的精力。

如果你真的必须追求这个主题,Bit Twiddling Hacks包含一系列有趣的技巧。

关于c++ - 通过查看最后一位来检查数字是否为偶数 - 是否有其他类似的 "tricks"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1052620/

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