Когда-нибудь отличалась производительность между операторами Java >> и >>> сдвига вправо?

StackOverflow https://stackoverflow.com/questions/2526571

Вопрос

Есть ли когда-нибудь основания думать, что операторы >> (со знаком) и >>> (без знака) сдвига правых битов в Java будут работать по-разному?Я не могу обнаружить никакой разницы на своем компьютере.

Это чисто академический вопрос;я уверен, что это никогда не станет узким местом.Я знаю:лучше всего написать, что вы имеете в виду в первую очередь;используйте >>, например, для деления на 2.

Я предполагаю, что все сводится к тому, в каких архитектурах какие операции реализованы в виде инструкции.

Это было полезно?

Решение

Нет.Ваш компилятор переведет их в байт-код, а JVM интерпретирует байт-код для вашей архитектуры.Я думаю, можно с уверенностью предположить, что в вашей архитектуре есть набор команд, который включает в себя выполнение обеих операций за несколько тактов.

В любом случае, есть разница в поведении этих операторов, так что вы не можете просто поменять их местами.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top