Programmer en langage C
222
© Éditions Eyrolles
3.4 Exemples d’utilisation des opérateurs de bits
L’opérateur & permet d’accéder à une partie des bits d’une valeur en masquant les autres. Par
exemple, l’expression :
n & 0xF
permet de ne prendre en compte que les 4 bits de droite de n (que n soit de type char, short,
int ou long).
De même :
n & 0x8000
permet d’extraire le « bit signe » de n, supposé de type int dans une implémentation où
celui-ci correspond à 16 bits.
Voici un exemple de programme qui décide si un entier est pair ou impair, en examinant
simplement le dernier bit de sa représentation binaire :
4 Les champs de bits
Nous venons de voir que le langage C dispose d’opérateurs de bits très puissants permettant de
travailler au niveau du bit. De plus, ce langage permet de définir, au sein des structures, des
variables occupant un nombre défini de bits.
Test de la parité d’un entier
#include
main()
{
int n ;
printf ("donnez un entier : ") ;
scanf ("%d", &n) ;
if ( n & 1 == 1 )
printf ("il est impair") ;
else
printf ("il est pair") ;
}
donnez un entier : 58
il est pair
_________________
donnez un entier : 47
il est impair
Delannoy Livre.book Page 222 Mercredi, 6. mai 2009 4:26 16
222
© Éditions Eyrolles
3.4 Exemples d’utilisation des opérateurs de bits
L’opérateur & permet d’accéder à une partie des bits d’une valeur en masquant les autres. Par
exemple, l’expression :
n & 0xF
permet de ne prendre en compte que les 4 bits de droite de n (que n soit de type char, short,
int ou long).
De même :
n & 0x8000
permet d’extraire le « bit signe » de n, supposé de type int dans une implémentation où
celui-ci correspond à 16 bits.
Voici un exemple de programme qui décide si un entier est pair ou impair, en examinant
simplement le dernier bit de sa représentation binaire :
4 Les champs de bits
Nous venons de voir que le langage C dispose d’opérateurs de bits très puissants permettant de
travailler au niveau du bit. De plus, ce langage permet de définir, au sein des structures, des
variables occupant un nombre défini de bits.
Test de la parité d’un entier
#include
main()
{
int n ;
printf ("donnez un entier : ") ;
scanf ("%d", &n) ;
if ( n & 1 == 1 )
printf ("il est impair") ;
else
printf ("il est pair") ;
}
donnez un entier : 58
il est pair
_________________
donnez un entier : 47
il est impair
Delannoy Livre.book Page 222 Mercredi, 6. mai 2009 4:26 16
