Les opérateurs sur les bits vous permettent de
manipuler les bits dans un entier. Si les paramètres de gauche et de droite
sont des chaînes de caractères, l'opérateur de bits agira sur les
valeurs ASCII de ces caractères.
Exemple 15-4. Exemples avec les opérateurs sur les bits
<?php echo 12 ^ 9; // Affiche '5'
echo "12" ^ "9"; // Affiche le caractère d'effacement (ascii 8) // ('1' (ascii 49)) ^ ('9' (ascii 57)) = #8
echo "hallo" ^ "hello"; // Affiche la valeur asciie : s #0 #4 #0 #0 #0 // 'a' ^ 'e' = #4 ?>
|
|
Tableau 15-3. Les opérateurs sur les bits
| Exemple | Nom | Résultat |
|---|
| $a & $b | ET (And) |
Les bits positionnés à 1 dans $a ET dans
$b sont positionnés à 1.
|
| $a | $b | OU (Or) |
Les bits positionnés à 1 dans $a OU $b
sont sont positionnés à 1.
|
| $a ^ $b | Xor |
Les bits positionnés à 1 dans $a OU dans
$b mais pas dans les deux sont positionnés à 1.
|
| ~ $a | NON (Not) |
Les bits qui sont positionnés à 1 dans $a
sont positionnés à 0, et vice versa.
|
| $a << $b | Décalage à gauche |
Décale les bits de $a, $b fois
sur la gauche (chaque décalage équivaut à une multiplication par 2).
|
| $a >> $b | Décalage à droite |
Décalage des bits de $a, $b fois
par la droite (chaque décalage équivaut à une division par 2).
|
| Avertissement |
N'effectuez pas de décalage à droite de plus de 32 bits sur les systèmes
32 bits. N'effectuez pas de décalage à droite dans le cas où le résultat
est un nombre plus long que 32 bits.
|