bonjour
un petit post pour eviter à d'autres de galérer:
je voulais 12 puissance 5 en php:
mais je faisais 12^5 au lieu de pow(12,5)
exmpl:
Code :
echo 12^5 ; // resultat: 9
echo pow(12,5) ; // resultat: 248832
erreure stupide...
Et "^", c'est un XOR c'est à dire un "OU exclusif" en binaire.
C'est à dire qu'on choisit les "1" dans A ou dans B, mais on laisse à 0 si les deux sont à "1" (ou les 2 à "0" comme pour un OR normal).
12 ^ 5
= "1100" ^ "0101" en notation binaire
= "1001" suivant la règle énoncé au dessus
= 9 en notation décimale
Ca peut servir au cas où on fait un test du style:
Après une passe d'arme,
si A ou B est mort : traitement spécial
(mais on fait rien si ils sont tous les deux morts ou aucun n'est mort).
effectivement, ne jamais utiliser "^" pour les puissances
Par curiosité : qu'est-ce qui t'a fait penser que ^ était l'opérateur de puissance ?
Sephi-Chan
(18-05-2010, 04:16 PM)Sephi-Chan a écrit : [ -> ]Par curiosité : qu'est-ce qui t'a fait penser que ^ était l'opérateur de puissance ?
Sephi-Chan
c'est bien comme ca que l'on fait en math non ?
de plus sur
http://www.php.net/manual/fr/function.gmp-pow.php cela prête à confusion:
Citation : Valeurs de retour
Le nouveau nombre, sous la forme d'un nombre GMP. Dans le cas de 0^0, gmp_pow() retourne 1.
Notation en math et sur les calculatrices non 3d peut être? :p
Je dois dire que je vient de corriger grâce a ça mon algo de calcul de distance entre 2 coordonnées!
Mais c'est bizarre car avec ^2 je tombait comme même sur le résultat attendu...
Un grand merci, peut être un futur bug de plus de corrigé...
(18-05-2010, 04:16 PM)Sephi-Chan a écrit : [ -> ]Par curiosité : qu'est-ce qui t'a fait penser que ^ était l'opérateur de puissance ?
Sephi-Chan
Sur n'importe calculette (y compris la calculette windows ou encore celle de mon portable) utilise se symbole pour les puissance^^
je m'étais fais avoir aussi la première fois
C'est bien la réponse que j'attendais.
Par contre, ça fait un peu peur pour la qualité d'apprentissage du langage. :p
En Ruby, on utilise
** (qui est — comme tous les opérateurs — une méthode).
3 ** 2 # => 9
3.**(2) # => 9
Sephi-Chan
(18-05-2010, 04:31 PM)atra27 a écrit : [ -> ]Mais c'est bizarre car avec ^2 je tombait comme même sur le résultat attendu...
veinard
bon, mon erreur aura servie à quelqu'un...
Je sais pas pourquoi mais le résultat était logique... j'ai pas vérifié avec des grands nombres mais il était cohérent avec le résultat attendu...