![处理器在哪些操作中内部使用按位计算?](https://linux22.com/image/1405895/%E5%A4%84%E7%90%86%E5%99%A8%E5%9C%A8%E5%93%AA%E4%BA%9B%E6%93%8D%E4%BD%9C%E4%B8%AD%E5%86%85%E9%83%A8%E4%BD%BF%E7%94%A8%E6%8C%89%E4%BD%8D%E8%AE%A1%E7%AE%97%EF%BC%9F.png)
我理解什么是按位运算,也知道如何在代码中使用它们。但是,处理器是否会自动使用按位运算来执行计算?例如,是否有算术运算在调用时会导致处理器在内部使用按位运算,而无需我在代码中明确使用它们?
答案1
例如乘法和除法。将位向左移动一位是乘以 2,将位向右移动一位是除以 2。对于处理器来说,移动位比计算要快。
答案2
它将依赖于处理器,但我猜通常不会,除非您的代码明确调用。如果您的代码不是汇编代码,那么这通常取决于编译器。您可以在此处看到关于此问题的详细讨论: https://stackoverflow.com/questions/235072/do-modern-compilers-optimize-the-x-2-operation-to-x-1