zer*_*ble 7 c++ bit-manipulation
最近我发现,如果我需要查看变量是偶数(还是奇数),我只能看看变量的最后一位是否等于0.这个发现在实现时取代了少数模2计算,因此整个函数运行得更快.
还有像这样的"技巧",使用位可以替代其他计算,从而改善功能执行时间吗?
jas*_*son 22
我怀疑通过等效的按位运算替换模2计算的使用产生了更快的执行时间.值得一提的任何C++编译器都会编译n % 2
并运行n & 1
相同的机器指令.
谨防使用bit-twiddling hacks作为优化.首先,并不总是很清楚您正在优化的功能是瓶颈.其次,生成的代码通常难以维护,更可能不正确或有微妙的错误.这就是着名引文Knuth所说的"我们应该忘记效率低,大约97%的时间说:过早的优化是所有邪恶的根源." 省力.
如果你真的必须追求这个主题,Bit Twiddling Hacks包含一系列有趣的黑客.
归档时间: |
|
查看次数: |
2887 次 |
最近记录: |