Les opérateurs logiques suivants effectuent des manipulations bit-à-bit sur des opérandes entiers. Si, par exemple, la valeur stockée dans X est (au format binaire) 001101 et si la valeur stockée dans Y est 100001, l'instruction
Z := X or Y;
affecte la valeur 101101 à Z.
Opérateurs logiques (bit-à-bit)
Opérateur Opération Types d'opérande Type du résultat Exemples
not négation bit-à-bit entier entier not X
and et bit-à-bit entier entier X and Y
or ou bit-à-bit entier entier X or Y
xor ou exclusif bit-à-bit entier entier X xor Y
shl décalage à gauche bit-à-bit entier entier X shl 2
shr décalage à droite bit-à-bit entier entier Y shr I
Les règles suivantes s'appliquent aux opérateurs bit-à-bit :
Le résultat d'une opération not est de même type que l'opérande.
Si les opérandes d'une opération and, or ou xor sont tous les deux des entiers, le résultat est du plus petit type entier prédéfini qui inclut toutes les valeurs possibles des deux types.
Les opérations x shl y et x shr y décalent la valeur x vers la gauche ou vers la droite de y bits, ce qui revient (si x est un entier non signé) à multiplier ou à diviser x par 2^y ; le résultat est du même type que x. Si, par exemple, N contient la valeur 01101 (13 en décimal), alors N shl 1 renvoie 11010 (26 en décimal). Notez que la valeur de y est interprétée comme le modulo de la taille du type de x. Ainsi, par exemple, si x est un entier, x shl 40 est interprété comme x shl 8 car un entier a pour taille 32 bits, et 40 mod 32 correspond à 8.
Partager