Programmer en langage C
220
© Éditions Eyrolles
3 Les opérateurs de manipulation de bits
3.1 Présentation des opérateurs de manipulation de bits
Le langage C dispose d’opérateurs permettant de travailler directement sur le motif binaire
d’une valeur. Ceux-ci lui procurent ainsi des possibilités traditionnellement réservées à la programmation en langage assembleur.
A priori, ces opérateurs ne peuvent porter que sur des types entiers. Toutefois, compte
tenu des règles de conversion implicite, ils pourront également s’appliquer à des caractères
(mais le résultat en sera entier).
Le tableau ci-après fournit la liste de ces opérateurs qui se composent de cinq opérateurs binaires
et d’un opérateur unaire.
3.2 Les opérateurs bit à bit
Les 3 opérateurs &, | et ^ appliquent en fait la même opération à chacun des bits des deux opérandes. Leur résultat peut ainsi être défini à partir d’une table (dite « table de vérité ») fournissant le résultat de cette opération lorsqu’on la fait porter sur deux bits de même rang de chacun
des deux opérandes. Cette table est fournie par le tableau ci-après.
L’opérateur unaire ~ (dit de « complément à un ») est également du type « bit à bit ». Il se
contente d’inverser chacun des bits de son unique opérande (0 donne 1 et 1 donne 0).
Opérateurs de manipulation de bits
TYPE
OPÉRATEUR
SIGNIFICATION
______________________________________________________________
binaire
&
ET (bit à bit)
|
OU inclusif (bit à bit)
^
OU exclusif (bit à bit)
<<
Décalage à gauche
>>
Décalage à droite
______________________________________________________________
unaire
~
Complément à un (bit à bit)
______________________________________________________________
Table de vérité des opérateurs « bit à bit »
OPÉRANDE 1
0
0
1
1
OPÉRANDE 2
0
1
0
1
______________________________________________________
ET (&)
0
0
0
1
OU inclusif (|)
0
1
1
1
OU exclusif (^)
0
1
1
0
Delannoy Livre.book Page 220 Mercredi, 6. mai 2009 4:26 16
220
© Éditions Eyrolles
3 Les opérateurs de manipulation de bits
3.1 Présentation des opérateurs de manipulation de bits
Le langage C dispose d’opérateurs permettant de travailler directement sur le motif binaire
d’une valeur. Ceux-ci lui procurent ainsi des possibilités traditionnellement réservées à la programmation en langage assembleur.
A priori, ces opérateurs ne peuvent porter que sur des types entiers. Toutefois, compte
tenu des règles de conversion implicite, ils pourront également s’appliquer à des caractères
(mais le résultat en sera entier).
Le tableau ci-après fournit la liste de ces opérateurs qui se composent de cinq opérateurs binaires
et d’un opérateur unaire.
3.2 Les opérateurs bit à bit
Les 3 opérateurs &, | et ^ appliquent en fait la même opération à chacun des bits des deux opérandes. Leur résultat peut ainsi être défini à partir d’une table (dite « table de vérité ») fournissant le résultat de cette opération lorsqu’on la fait porter sur deux bits de même rang de chacun
des deux opérandes. Cette table est fournie par le tableau ci-après.
L’opérateur unaire ~ (dit de « complément à un ») est également du type « bit à bit ». Il se
contente d’inverser chacun des bits de son unique opérande (0 donne 1 et 1 donne 0).
Opérateurs de manipulation de bits
TYPE
OPÉRATEUR
SIGNIFICATION
______________________________________________________________
binaire
&
ET (bit à bit)
|
OU inclusif (bit à bit)
^
OU exclusif (bit à bit)
<<
Décalage à gauche
>>
Décalage à droite
______________________________________________________________
unaire
~
Complément à un (bit à bit)
______________________________________________________________
Table de vérité des opérateurs « bit à bit »
OPÉRANDE 1
0
0
1
1
OPÉRANDE 2
0
1
0
1
______________________________________________________
ET (&)
0
0
0
1
OU inclusif (|)
0
1
1
1
OU exclusif (^)
0
1
1
0
Delannoy Livre.book Page 220 Mercredi, 6. mai 2009 4:26 16
