Neo192 Posted January 12, 2005 Posted January 12, 2005 Voila, depuis deux jours j'essaye de comprendre, mais je n'y arrive pas. En fait c'est à cause de l'opérateur >>. Définition : Décale les bits vers la droite (divise par 2 à chaque décalage). Les zéros qui sortent à droite sont perdus, tandis que le bit non-nul de poids plus fort est recopié à gauche. Syntaxe : 6 >> 1 (0110 >> 1). Résultat : 3 (0011). Mon problème c'est que le php ne fait des conversions binaire que jusqu'à 2147483647. Il donne donc le bon résultat jusqu'à cette limite mais ensuite il fait n'importe quoi. Mon problème est donc quand il fait n'importe quoi. Cela me dérange pas mais le réel problème c'est que le résultat en php4 et en php5 sont différents quand cette limite est dépassée et je voudrais savoir pourquoi et comment faire pour que le résultat que donne php5 soit le même que le résultat que donne php4 (important). Voila, mon problème n'est pas très commun mais c'est assez important pour moi. Exemple pour mieux comprendre : $a = 2147483647; echo $a."<br>"; (afichera en php4 et en php5: 2147483647) $a = ($a>>1); echo $a."<br>"; (afichera en php4 et en php5: 1073741823) $a = 214748368; (voyez bien que j'ai changé juste le dernier chiffre) echo $a."<br>"; (afichera en php4 et php5: 2147483648) $a = ($a>>1); echo $a."<br>"; (afichera en php4 : -1073741824 et en php5: 1073741823) et après cela devient pire : $a = 4653896912; (voyez bien que j'ai changé juste le dernier chiffre) echo $a."<br>"; (afichera en php4 et php5: 4653896912) $a = ($a>>1); echo $a."<br>"; (afichera en php4 : 179464808 et en php5: 1073741823) En espérant que vous trouverez le pourquoi du comment, je vous remerci d'avance pour votre aide.
SnipX Posted January 12, 2005 Posted January 12, 2005 $a = 214748368; (voyez bien que j'ai changé juste le dernier chiffre)echo $a."<br>"; (afichera en php4 et php5: 2147483648) eeeuuh! Il affichera 214748368 et non 2147483648. Tu as changé les deux derniers chiffres. Sinon renseigne toi des changements que peut provoquer Php5 avec l'opérateur >>.
Recommended Posts
Archived
This topic is now archived and is closed to further replies.