Les opérations bit à bit

Pourquoi manipuler les bits ?

Les opérations bit à bit permettent de manipuler les valeurs binaires directement, c’est-à-dire bit par bit. Elles sont très utilisées en informatique bas niveau, mais aussi dans des situations concrètes comme :

  • Le contrôle d’options dans une application (chaque bit représentant un paramètre)
  • La compression et le chiffrement des données
  • Le traitement d’images, de sons ou de signaux
  • Les microcontrôleurs et les systèmes embarqués
Ces opérations sont rapides, efficaces en mémoire, et souvent utilisées dans les systèmes où les ressources sont limitées.

Comment ça marche ?

Chaque entier est représenté par une suite de bits (0 ou 1). Les opérations bit à bit comparent ou modifient ces bits individuellement.

Exemple :

# Représentation binaire
x = 5   # 0b0101
y = 3   # 0b0011

Principales opérations bit à bit

OpérationSymboleEffetExemple
ET logique&1 si les deux bits sont à 10b0101 & 0b0011 = 0b0001
OU logique|1 si au moins un des deux bits est à 10b0101 | 0b0011 = 0b0111
OU exclusif (XOR)^1 si un seul des deux bits est à 10b0101 ^ 0b0011 = 0b0110
NON logique~Inverse tous les bits (complément à deux)~0b00000000 = 0b11111111
Décalage à gauche<<Décale les bits vers la gauche (multiplie)0b00000001 << 1 = 0b00000010
Décalage à droite>>Décale les bits vers la droite (divise)0b00000100 >> 1 = 0b00000010

Représentation binaire

Un nombre entier peut être affiché en binaire avec la fonction format(n, '08b'), qui affiche le nombre sur 8 bits. Exemple :

etat = 0b00000110
print(format(etat, '08b'))  # Affiche 00000110

Exemple concret : options stockées dans un octet

Supposons qu’un programme stocke plusieurs options dans un seul octet. Chaque bit représente une option activée (1) ou désactivée (0).

Bit 0 : Son activé
Bit 1 : Bluetooth activé
Bit 2 : Wi-Fi activé
Bit 3 : Mode avion activé
Bit 4 : Notifications activées

Vérifier si une option est activée

etat = 0b00000110  # Wi-Fi et Bluetooth activés
wifi = 0b00000100
if etat & wifi:
    print("Wi-Fi activé")

Activer une option (ex : mode avion)

etat |= 0b00001000  # Active le bit 3

Désactiver une option (ex : Bluetooth)

etat &= ~0b00000010  # Met le bit 1 à 0

Basculer une option (XOR)

etat ^= 0b00000100  # Si le Wi-Fi était activé, il est désactivé, et inversement

Résumé

  • Les opérations bit à bit agissent directement sur la représentation binaire des entiers
  • Elles permettent de manipuler des données de manière fine, efficace et rapide
  • Les opérateurs les plus courants sont &, |, ^, ~, <<, >>
  • On peut utiliser les bits pour stocker et gérer plusieurs états dans une seule variable entière

Ces notions sont utiles en algorithmique, en électronique, et dans tous les systèmes où l’optimisation mémoire et la vitesse d'exécution sont importantes.