Я понимаю, что такое побитовые операции, и знаю, как использовать их в своем коде. Однако существуют ли ситуации, когда процессор будет автоматически использовать побитовые операции для выполнения вычислений? Например, существуют ли арифметические операции, которые при вызове заставят процессор внутренне использовать побитовые операции без моего явного использования их в коде?
-3
2 ответа
3
Примерами будут умножение и деление. Перемещение битов влево на одну позицию - это умножение на 2, перемещение их вправо на одну позицию - это деление на 2. Процессор быстрее перемещает бит, чем вычисляет.
0
Это будет зависеть от процессора, но, как я полагаю, обычно нет, если только это не вызвано вашим кодом. Если ваш код отличается от сборки, то это обычно зависит от компилятора. Вы можете увидеть долгое обсуждение этого здесь:https://stackoverflow.com/questions/235072/do-modern-compilers-optimize-the-x-2-operation-to-x-1