donc en gros.. ca fonctionne.. mais dès que le nombre fait plus de 9 chiffres.. bin ca me retourne un resultat érronné (comme c'est le cas dans le premier exemple...)
avec vous une idée pour obtenir le resultat en bidouillant (genre en fesant le not en plusieurs fois ou autre..) ou bien une idée de la source du probleme..
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 9 déc. 2007 à 10:44
Hello,
comme tous les langages, PHP est limité pour ce qui concerne les entiers à grandes tailles; tu peux toujours bidouiller le php.ini (PHP_INT_MAX et PHP_INT_SIZE) mais comme ça dépend aussi de l'OS du serveur web...
Bref, je pense que ton problème vient de là.
cs_nlh
Messages postés93Date d'inscriptionmercredi 21 avril 2004StatutMembreDernière intervention 9 décembre 20071 9 déc. 2007 à 11:38
merci de ta reponse..
en fouillant encore un peu j'ai vu que c'est a partir de 2147483647
que les int deviennent des float.
et j'ai fait l'essai sur des petits float.. et ca marche bien des
deux cotés. donc l'operateur a un soucis avec les floats superieur à
2147483647.
j'ai essayé avec PHP_INT_MAX et PHP_INT_SIZE.. mais finalement c'est
avec les float trop grand que j'ai un problème...
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 9 déc. 2007 à 11:55
De tte manière, il n'y aura pas de solution miracle ton problème : les ordinateurs sont limités, forcément, dans les données qu'ils peuvent traiter. On est généralement sur du 32 bits, voire du 64...voire...donc de l'inversion de bits sur de grands nombres, forcément, c'est limité. Je ne sais pas pourquoi tu as besoin de nombres d'aussi grande taille...mais si c'est vraiment vital pour ce que tu développes, tu te trompes sans doute de langage, voire d'OS...
cs_nlh
Messages postés93Date d'inscriptionmercredi 21 avril 2004StatutMembreDernière intervention 9 décembre 20071 9 déc. 2007 à 12:28
lol merci.. j'aime pas ce genre de bidouille..mais bon. ca le fait
que sur une becanne..
sinon pour répondre à ta question c'est pour faire
hashage md5 avec des cles a,b,c,d personnalisées ... et là c'est bon,
ca marche nickel
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 9 déc. 2007 à 18:14
c'est pas un bug, c'est juste qu'inverser les bits d'un float, ca change plein de trucs... ca chance son signe, l'exposant et la mantisse... c'est un operateur binaire, pas arithmetique, et les calculs sur les floats ca ne donne jamais les bons resultats c'est normal.