Maison >développement back-end >tutoriel php >Opérateur PHP (4) Exemple d'explication 'Opérateur de bits'
Nous avons expliqué "opérateur arithmétique php ", "opérateur de chaîne php ", "opérateur d'affectation " dans les opérateurs PHP, aujourd'hui je vais vous donner une introduction détaillée au "opérateur bit" dans les opérateurs PHP.
Les opérateurs au niveau du bit ne sont pas souvent utilisés en PHP, mais ils sont toujours très utiles. Dans le contenu suivant, nous donnerons des exemples pour illustrer l'utilisation des opérateurs au niveau du bit.
Les opérateurs au niveau des bits font référence aux opérations après l'alignement des bits binaires du poids faible au poids fort. Ils permettent l'évaluation et le fonctionnement de bits spécifiés en nombres entiers.
L'opérateur en PHP est tel qu'indiqué dans le tableau ci-dessous
运算符 | 说明 | 例子 |
& | 按位与 | $m & $n |
| | 按位或 | $m | &$n |
^ | 按位异或 | $m ^ $n |
~ | 按位非或按位取反 | $m ~ $n |
左移 | $m | |
>> | 右移 | $m >> $n |
Utilisons des exemples pour décrire les opérateurs dans le tableau ci-dessus
<?php $m=1; //1=0 00000001 $n=2; //2=00000010 $mn=$m&$n; echo $mn."<br/>"; $mn=$m^$n; echo $mn."<br/>"; $mn=$m|$n; echo $mn; ?>
Les résultats de l'exécution du code :
Exemple explication :
$m&$n : C'est 1 quand les deux valent 1, sinon c'est 0. Autrement dit, définissez les bits dans $a et $b qui sont tous deux 1 à 1, sinon définis sur 0.
00000001 ← $m
& 00000010 ← $b
Le résultat de la comparaison est 00000000, donc la sortie est 0
$m^ $n : Dans le processus de OU au niveau du bit, la différence est de 1 et la même chose est de 0.
00000001 ← $m
^ 00000010 ← $n
Le résultat est donc 00000011 et 3 est affiché.
$m|$n : Dans le processus de OU au niveau du bit, 1 est 1, tous les 0 sont 0,
00000001 ← $m
| 00000010 ← $n
Le résultat est 00000011, donc la sortie est 3
L'exemple ci-dessus parle de "OU au niveau du bit", "OU au niveau du bit", "XOR au niveau du bit", Jetons un coup d'œil aux trois exemples suivants
Exemple de NON au niveau du bit ou de négation au niveau du bit , le code est le suivant
<?php $m = 2; $m1 = ~$m; echo $m1; ?>
Résultat d'exécution
À l'heure actuelle, notre résultat en cours d'exécution est de -3, nous devons faire attention ici.
Remarque : Dans les ordinateurs, les nombres négatifs sont exprimés sous forme de complément de leurs valeurs positives.
1 : Le code original de 32 bits de 2 est 0000 0000 0000 0000 0000 0000 0000 0010
2 : L'inversion au niveau du bit est 1111 1111 1111 1111 1111 1111 1111 1
Puisque le premier nombre est 1 et le bit de signe est 1, c'est un nombre négatif. Par conséquent, la forme complémentaire de sa valeur positive est exprimée comme suit : (le bit de signe reste inchangé, inversé au niveau du bit, et 1 est ajouté à la fin. )
1000 0000 0000 0000 0000 0000 0000 0011
Donc la sortie est -3
Maj gauche et exemple de code de décalage
<?php $m = 12; // 12=00001100 $n = 3; // 3=00000011 $mn= $m << $n; echo $mn ."<br/>"; $mn= $m >> $n; echo $mn ; ?>
Résultats en cours d'exécution :
Exemple d'explication :
$ m : Déplacez les bits de $m vers la gauche $n fois (chaque mouvement signifie "multiplier par 2", c'est-à-dire "multiplier par 2$b").
0000 1100 ← $m
0110 0000 = 96
$m>>$n : Déplacez les bits de $m vers la droite $n fois (chaque mouvement signifie "diviser par 2", c'est-à-dire "multiplier par 2 -$ b").
0000 1100 ← $m
0000 0001 = 1
Le contenu ci-dessus est le contenu détaillé des "opérateurs de bits" dans les opérations PHP. Si vous ne comprenez rien, vous pouvez suivre notre site Web PHP chinois et laisser un message ci-dessus. . Nous le ferons, je vous donnerai la réponse dans les plus brefs délais ou effectuez une recherche sur le site PHP chinois, vous pourrez peut-être trouver ce que vous voulez. Dans la section suivante, nous présenterons en détail l'opérateur logique dans les opérations PHP.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!