java - 在现代处理器上使用按位运算真的比常规数学运算更快吗?

标签 java c# bit-manipulation operator-keyword bit-shift

<分区>

我看到多个来源(这里有一些,以及维基百科上关于按位运算的文章)说使用位移计算比普通的乘法/除法/加法更快。但是,他们还提到,这仅适用于较旧的处理器,而且大多数现代处理器都做到了,因此速度几乎相等。

该声明的有效性如何?在 Java 或 C# 中仅使用常规数学操作数是否安全?是否真的有必要再使用位移位来替代这些操作数?

最佳答案

你只需将其留给编译器即可。好的编译器知道他们所针对的硬件。如果编译器知道按位运算更快,那么它可以发出代码来按位运算。您应该始终以最清晰的方式编写人类可读的代码,即正确表达正在执行的操作的方式。让编译器完成剩下的工作。

至于按位运算是否仍然可以比算术运算更快,我相信是的。当然,许多现代 C++ 编译器会生成使用按位运算进行算术运算的代码。

关于java - 在现代处理器上使用按位运算真的比常规数学运算更快吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10704931/

相关文章:

java - 在 Vaadin 中设置 GridLayout 行高

java - Maven Surefire 插件未在 jenkins 中选择测试

java - Jsoup 将内容存入数据库

c# - 将任务<字符串> 转换为字符串

perl - Perl 中的位操作

java - Spring Vaadin 主题

c# - 在彼此中实例化两个类中的每一个

c++ - 检查一个字节中 ON 的位数?

java - 正确使用位掩码?

c# - 字符串比较长度不匹配