Подтвердить что ты не робот

Pow (x, y) в Java

Какая разница между:

Math.pow ( x,y ); // x^y

To:

x^y; // x^y

?

Я предпочитаю использовать x^y с номерами double типа? Или оболочку, которую я должен использовать всегда с помощью метода Math.pow()?

4b9b3361

Ответ 1

^ является побитовым эксклюзивным OR (XOR) оператором в Java (и многими другими языками). Он не используется для возведения в степень. Для этого вы должны использовать Math.pow.

Ответ 2

Кроме того, для того, что было сказано, если вам нужны целые степени из двух, то 1 << x (или 1L << x) - это более быстрый способ вычисления 2 x чем Math.pow(2,x), или цикл умножения, и гарантированно даст вам результат int (или long).

Он использует только наименьшие 5 (или 6) бит x (т.е. x & 31 (или x & 63)), хотя и сдвигает между 0 и 31 (или 63) битами.

Ответ 3

В Java x ^ y работает XOR.

Ответ 4

x^y не "x до степени y". Это "x XOR y" .