Retour au cours

Opérateurs bit à bit (Bitwise)

Langage C : de Zéro à Héros - Le Guide Complet pour Débutants

Leçon 56 : Opérateurs bit à bit

Les opérateurs bit à bit travaillent sur les bits individuels (0 et 1) des types entiers. Ils sont essentiels pour la programmation de bas niveau, le chiffrement, la programmation réseau et l'optimisation du stockage.

OpérateurDescription
&ET bit à bit (Met un bit à 1 si les deux bits correspondants sont à 1)
``
^XOR bit à bit (Met un bit à 1 si les bits correspondants sont différents)
~NON bit à bit (Inverse tous les bits : 0 devient 1, 1 devient 0)
<<Décalage à gauche (Décale les bits vers la gauche, remplit à droite par des 0)
>>Décalage à droite (Décale les bits vers la droite)

Utilisation pratique : Définir, Effacer et Inverser des bits

Supposons un entier de 8 bits nommé drapeaux (flags).

1. Définir un bit (Utilisation du OU |)

Pour s'assurer que le 3ème bit (index 2) est à 1, quel que soit son état actuel :

c unsigned char drapeaux = 0b00100000; // Exemple valeur 32 unsigned char MASQUE = 0b00000100; // Masque pour le bit 2 (valeur 4)

// Définir le bit 2 (32 | 4 = 36) drapeaux = drapeaux | MASQUE;

2. Effacer un bit (Utilisation du ET & avec le NON ~)

Pour s'assurer que le 5ème bit (index 4) est à 0 :

c unsigned char drapeaux = 0b00110000; // Exemple valeur 48 unsigned char MASQUE = 0b00010000; // Masque pour le bit 4 (valeur 16)

// Effacer le bit 4 (48 & ~16 = 32) drapeaux = drapeaux & (~MASQUE);

3. Décalage de bits

Le décalage à gauche (<<) équivaut à multiplier par des puissances de 2 (si aucun débordement ne se produit).

c int x = 5; // 00000101 int y = x << 2; // 00010100 (20). Car 5 * 2^2 = 20.