Aller au contenu

Besoin d'aide en php (opérateur >>)


Neo192

Messages recommandés

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.

Lien vers le commentaire
Partager sur d’autres sites

$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 >>.

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...