java – 在现代处理器上使用按位运算真的比常规数学快吗?
作者:互联网
参见英文答案 > Is shifting bits faster than multiplying and dividing in Java? .NET? [closed] 13个
我已经看到多个来源(一些在这里,在维基百科关于按位运算的文章中)说使用比特移位来计算比正常的乘法/除法/加法更快.然而,他们还提到,这只适用于较旧的处理器,并且大多数现代处理器都使其速度几乎相等.
该声明的有效性如何?在Java或C#中使用常规数学操作数是否安全?是否正在使用bithifting作为那些真正需要的操作数的替代品?
解决方法:
你只需将它留给编译器.好的编译器知道他们所针对的硬件.如果编译器知道按位操作更快,那么它可以发出代码来执行此操作.您应该始终以最清晰的方式编写人类可读代码,正确表达正在执行的操作的方式.让编译器完成其余的工作.
至于是否仍然可以按比例操作比算术更快,我相信它们是.当然,许多现代C编译器将发出使用按位运算进行算术运算的代码.
标签:c,java,bit-manipulation,bit-shift,operator-keyword 来源: https://codeday.me/bug/20190716/1480856.html