位操作代码的重要性?

时间:2011-10-27 14:36:37

标签: bit-manipulation

过去3年我一直在编程,并没有真正努力编写位操作代码。在使用企业软件之后,我还没有看到其他开发人员写过它。

编写位操作代码而不是使用数学运算来执行计算是一个好习惯吗?

4 个答案:

答案 0 :(得分:2)

或多或少,如果你不使用那种可以从位操作中受益的软件,那么你可能不需要使用它们。事实上,在许多地方,他们可以使代码更难阅读,除非有理由,否则不应该使用代码。

但是,如果您感兴趣,在给定正确的应用程序的情况下,它们是一个有用的工具。例如,如果您的代码乘以2的幂,则可以更快地左移位。如果您确定乘法代码是性能的瓶颈,这可能会变得很重要。

要实现的一个重要事实是,某些编译器会为您执行某些形式的优化(例如,将行i = i * 2转换为左移)。

答案 1 :(得分:1)

这是一个有点怪异的问题!不,企业代码可能永远不会做位操作。它通常用Java / .NET等编写,关注的是推送消息并在各个系统之间进行高级别的通信。

但是,如果您使用C或C ++或汇编程序编写驱动程序,或者执行聪明的低级数学运算,那么位操作可能对您来说更重要和有用。毫无疑问,如果/何时,你会知道何时使用它!

答案 2 :(得分:1)

这取决于具体情况。例如,右移和左移操作通常比分割操作符更快。如果您需要优化并且位操作比其他方法更快,则应使用位操作。但不要过早优化。因为这不是一件好事。如果您确定需要优化并且使用位运算符比以前的方法更快,那么您应该使用它们。

答案 3 :(得分:1)

TL; DR:否。使用数学运算符进行数学运算。