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

Explication détaillée des opérateurs de bits en php

怪我咯
怪我咯original
2017-06-20 13:28:163104parcourir

Les opérateurs au niveau du bit permettent l'évaluation et la manipulation de bits spécifiés dans un entier.

L'opérateur au niveau du biten PHP est comme indiqué ci-dessous


例子 名称 结果
$a & $b And(按位与) 将把和中都为 1 的位设为 1。
$a | $b Or(按位或) 将把和中任何一个为 1 的位设为 1。
$a ^ $b Xor(按位异或) 将把和中一个为 1 另一个为 0 的位设为 1。
~ $a Not(按位取反) 将中为 0 的位设为 1,反之亦然。
$a 09164dac8a74f068ade4a0c64fb12573> $b Shift right(右移) 将中的位向右移动次(每一次移动都表示“除以 2”)。

Le déplacement au niveau du bit est mathématique en Opération PHP. Les bits déplacés dans n’importe quelle direction sont rejetés. Lors du déplacement vers la gauche, le côté droit est complété par des zéros et le bit de signe est éloigné, ce qui signifie que le signe n'est pas conservé. Lors d'un déplacement vers la droite, le côté gauche est rempli de bits de signe, ce qui signifie que le signe est préservé.


Faites attention à la conversion du type de données. Si les arguments gauche et droit sont tous deux des chaînes, alors les opérateurs au niveau du bit opèreront sur les valeurs ASCII des caractères.

Le paramètre ini de PHP error_reporting utilise des valeurs au niveau du bit, et

fournit un exemple réel de désactivation d'un certain bit. Pour afficher toutes les erreurs sauf le niveau d'invite
, utilisez ceci dans php.ini : E_ALL & ~E_NOTICE

Quatre opérateurs au niveau du bit courants : & (au niveau du bit et), | , ^ (OU exclusif au niveau du bit), ~ (négation au niveau du bit)

& (ET au niveau du bit) : lorsque les bits correspondants sont tous deux 1 , ce sera 1 après l'opération &, sinon ce sera 0

| (OU au niveau du bit) : Lorsque l'un des bits correspondants est 1, après l'opération |, alors est 1, et lorsque les deux sont 0 , c'est 0

^ (OU exclusif au niveau du bit) : Lorsque les bits correspondants ne sont pas à 1 en même temps, ils sont à 1 après l'opération ^, et lorsqu'ils sont à 0 en même temps, ils sont à 0 et 1 en même temps. Après l'opération ^, c'est aussi 0

~ (négation au niveau du bit) : $a+(~$a)=-1

Dans les ordinateurs, les nombres négatifs sont exprimés sous forme de complément de leurs valeurs positives.
Ici, nous devons connaître trois concepts, le code original, le code inverse et le code complémentaire.

Code original : Un entier, converti en nombre binaire selon sa valeur absolue, est appelé code original. Le code original de

8 est : 0000 0000 0000 0000 0000 0000 0000 1000

Le complément à un : le nombre binaire est inversé au niveau du bit, et le nouveau nombre binaire résultant est appelé le complément à un de le nombre binaire d'origine. L'opération de négation signifie : 1 devient 0, 0 devient 1.

Négation au niveau du bit 8 : 1111 1111 1111 1111 1111 1111 1111 0111

Code complémentaire : le code complémentaire plus 1 est appelé code complémentaire. C'est-à-dire que pour obtenir le complément d'un nombre, obtenez d'abord le complément, puis ajoutez 1 au complément, et le nombre résultant est appelé le complément.

Le complément d'un nombre positif est le même que son code d'origine ; le complément d'un nombre négatif consiste à ajouter 1 au dernier chiffre de son complément

Ajouter 1 au complément : 1000 0000 0000 0000 0000 0000 000 1001 ; Cela vous donne la forme complémentaire de la valeur positive d’un nombre négatif. C'est -9.

Exemple

<?php
$m=8;
$n=12;
$p=-109;
$mn=$m&$n;
echo $mn."<br>";
$mn=$m|$n;
echo $mn."<br>";
$mn=$m^$n;
echo $mn."<br>";
$mn=~$m;
echo $mn."<br>";
$mn=~$p;
echo $mn."<br>";
?>

Résultat de sortie :

8
12
4
-9
108

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!

Déclaration:
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