web-dev-qa-db-fra.com

pow (x, y) dans Java

Quelle est la différence entre:

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

À:

x^y; // x^y

?

Vais-je préférer utiliser x^y Avec des numéros de type double? Ou Shell dois-je toujours utiliser la méthode Math.pow()?

24
Master C

^ est l'opérateur OR exclusif au niveau du bit (XOR) dans Java (et de nombreux autres langages). Il n'est pas utilisé pour l'exponentiation. Pour cela, vous devez utiliser Math.pow.

39
Michael Petrotta

De plus, pour ce qui a été dit, si vous voulez des puissances entières de deux, alors 1 << x (Ou 1L << x) Est un moyen plus rapide de calculer 2x que Math.pow(2,x) ou une boucle de multiplication, et est garanti pour vous donner un résultat int (ou long).

Il n'utilise que les 5 (ou 6) bits les plus bas de x (c'est-à-dire x & 31 (Ou x & 63)), Cependant, en basculant entre 0 et 31 (ou 63) bits.

12
Paŭlo Ebermann

Dans Java x ^ y est une opération XOR.

5
WhiteFang34

x^y n'est pas "x à la puissance de y". C'est "x XOR y" .

4