2013-06-30 2 views
0

Мы поговорим о дополнении в java.
Что такое Алгоритм в дополнении java

м% н.

например:
10% 3 = 1;

Как известно, когда n равно 2 N-й мощности, m & n будет более эффективным.
Что я хочу знать, так как Java реализует «%», как рассчитать 10% 3.
Когда я это знаю, я могу сравнить эффективность между «%» и «&».

+0

Я предполагаю, что компилятор JIT сопоставляет '%' с соответствующей инструкцией процессора. Я не уверен, но это кажется логичным. – Oswald

+0

Вы читали [** Глава 15.17.3 Оператор остатка% **] (http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.17.3) из JLS? – jlordo

ответ

0

Целочисленное вычисление остатка реализовано с помощью инструкции CPU. ЦП может реализовать его на аппаратном уровне или в микрокоде - зависит от оборудования, в котором вы запускаете код. Побитовое и оператор намного проще реализовать на аппаратных средствах, поэтому вы, вероятно, найдете его быстрее, но на сколько невозможно сказать.

Это то же самое для интерпретированного и JIT-скомпилированного Java-кода; интерпретируется просто больше накладных расходов.

Остаток с плавающей запятой и 64-разрядный «длинный» остаток по 32-битной архитектуре - это совсем другой зверь.

Смежные вопросы