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
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ération | Symbole | Effet | Exemple |
---|---|---|---|
ET logique | & | 1 si les deux bits sont à 1 | 0b0101 & 0b0011 = 0b0001 |
OU logique | | | 1 si au moins un des deux bits est à 1 | 0b0101 | 0b0011 = 0b0111 |
OU exclusif (XOR) | ^ | 1 si un seul des deux bits est à 1 | 0b0101 ^ 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.