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