Bonjour à tous.
Une question toute simple...
Je n'ai jamais eu à me servir de "<<" ou ">>". Je suis tombé dessus par hasard.
Peut-on juste me dire ce que c'est et à quoi ça sert ?
Merci d'avance
Bonjour à tous.
Une question toute simple...
Je n'ai jamais eu à me servir de "<<" ou ">>". Je suis tombé dessus par hasard.
Peut-on juste me dire ce que c'est et à quoi ça sert ?
Merci d'avance
Ce sont des opérateurs de décalage de bit, par exemple:décale les bits du nombre 5 d'un cran vers la droite, ce qui donne 2.
Code : Sélectionner tout - Visualiser dans une fenêtre à part echo 5 >> 1
5 en binaire s'écrit 101. Si je décale d'un bit vers la droite, j'obtiens 10 (toujours en binaire), ce qui est la représentation binaire de 2 (en décimal).
fait la même chose vers la gauche, donc ce coup ci, 101 devient 1010 ce qui correspond à 10 (en décimal).
Code : Sélectionner tout - Visualiser dans une fenêtre à part echo 5 << 1
Autrement dit, x >> n est le résultat de la division entière de x par 2^n, et x << n est le résultat de la multiplication de x par 2^n.
NB: si les opérandes ne sont pas entiers, il sont d'abord tronqués pour le devenir.
Le décalage de bit fait partie des opérations de base des processeurs, c'est donc très rapide.
Exemple bidon: ranger des nombres aléatoires par tranche de 1024 (2^10):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 $a = []; for ($i=0; $i<20; $i++) { $val = mt_rand(0, 40000); $a[$val >> 10][] = $val; } ksort($a); print_r($a);
Merci beaucoup.
Réponse claire et précise. C'est tout bon.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager