Maison > développement back-end > tutoriel php > Explication détaillée des opérateurs de bits PHP

Explication détaillée des opérateurs de bits PHP

藏色散人
Libérer: 2023-04-09 17:30:01
avant
5209 Les gens l'ont consulté

Recommandé : "Tutoriel vidéo PHP"

Opérateurs au niveau du bit

Les opérateurs au niveau du bit font référence aux bits binaires en commençant par les bits inférieurs Effectuez les opérations après vous être aligné sur le bit haut.

< /tr>
Symbole Fonction Exemple Compréhension personnelle
& ET au niveau du bit $m & $n Tous les 1 valent 1, sinon 0
| OU au niveau du bit $m $n Tous les 0 sont 0 et 1 est 1
^ OU exclusif au niveau du bit td> $m | $n Différent est 1, pareil est 0
~ Au niveau du bit négation ~$m
符号 作用 举例 个人理解
& 按位与 $m & $n 全1为1,否则为0
| 按位或 $m | $n 全0为0,有1为1
^ 按位异或 $m | $n 不同为1,相同为0
~ 按位取反 ~$m
<<向左移位$m << $n
>> 向右移位 $m >> $n
< Maj gauche$m << $n

>> Décalage vers la droite $m >> $n
&operator

<?php
$m = 1;
$n = 2;
$mn = $m & $n;
echo $mn;
Copier après la connexion

Le résultat de l'opération est 0

Explication : Convertir respectivement 1 et 2 en binaire comme

00000001

00000010

Dans le processus ET au niveau du bit, comparez au niveau du bit, tout 1 est 1, comparez Le résultat est 00000000, donc la sortie est 0

|Opérateur

<?php
$m = 1;
$n = 2;
$mn = $m | $n;
echo $mn;
Copier après la connexion

Le résultat est 3. De même, il est converti en système binaire comme ci-dessus

00000001

00000010

Dans le processus OU au niveau du bit, 1 est 1 et tous les 0 sont 0, alors le résultat est 00000011, donc la sortie est 3

^ opérateur

<?php
$m = 1;
$n = 2;
$mn = $m ^ $n;
echo $mn;
Copier après la connexion

Le résultat en cours d'exécution est 3. De même, il est converti en binaire ci-dessus

00000001

00000010

Dans le processus de OU au niveau du bit, la différence est de 1 et la même chose est 0, donc le résultat est 00000011 et 3 est affiché.

~operator

<?php
$m = 2;
$m1 = ~$m;
echo $m1;
Copier après la connexion

donne -3, ce qui donne à réfléchir.

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

<

<?php
$m = 3;
$m1=$m << 1;
echo $m1;
Copier après la connexion

Le résultat de l'opération est 6

L'essence de l'opération de décalage à gauche est de décaler la valeur binaire des données correspondantes vers la gauche de plusieurs bits par bit et de remplir les positions vacantes avec 0. Le Le bit le plus élevé déborde et est rejeté.

Le code original de 32 bits de 3 est 0000 0000 0000 0000 0000 0000 0000 0011

Décaler d'une position vers la gauche : 0000 0000 0000 0000 0000 0000 0000 0

Donc c'est 6

D'après la description du manuel, on peut voir que l'opération au niveau du bit montre que le décalage d'un bit vers la gauche est une opération de multiplication par 2. Parce que la vitesse d'opération de déplacement est bien supérieure à celle de multiplication. Par conséquent, lors du traitement des opérations de multiplication de données, l’utilisation d’opérations de déplacement peut atteindre des vitesses plus rapides.

Astuce : convertissez toutes les opérations de multiplication de 2 en opérations de déplacement pour améliorer l'efficacité de l'exécution du programme.

>> Opérateur

Décalage d'une position vers la droite, similaire à l'opérateur << fait ici. Trop d'explications. Pour plus de connaissances liées à la programmation, veuillez visiter :

Enseignement de la programmation ! !

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!

Étiquettes associées:
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal