Dans cet article
Qu'est-ce que l'arithmetique binaire ?
L'arithmetique binaire est le calcul effectue en base 2, utilisant uniquement les chiffres 0 et 1. Chaque ordinateur numerique traite les donnees en binaire au niveau materiel -- les entiers, les nombres a virgule flottante, les adresses memoire et meme le texte sont stockes et manipules comme des sequences de bits. Comprendre le binaire est essentiel pour la programmation bas niveau, les reseaux et la logique numerique.
Au-dela de l'addition et la soustraction simples, l'arithmetique binaire inclut les operations bit a bit : AND, OR, XOR, NOT et les decalages de bits. Ces operations agissent sur des bits individuels et sont fondamentales pour des taches comme la definition de drapeaux de permission, le calcul de sommes de controle, le masquage d'adresses IP et l'optimisation de code critique en performance.
Comment fonctionnent les operations bit a bit
Les operateurs bit a bit traitent les entiers bit par bit. Chaque operation a une table de verite qui definit la sortie pour chaque combinaison de bits d'entree.
- AND, OR, XOR -- AND (&) renvoie 1 uniquement quand les deux bits sont a 1, OR (|) renvoie 1 quand l'un des bits est a 1, et XOR (^) renvoie 1 quand les bits different. Utilises pour le masquage, la combinaison de drapeaux et l'inversion de bits
- NOT et decalages -- NOT (~) inverse tous les bits, le decalage a gauche (<<) multiplie par des puissances de 2, et le decalage a droite (>>) divise par des puissances de 2. Le decalage arithmetique a droite preserve le bit de signe pour les nombres negatifs
- Complement a deux -- les ordinateurs modernes representent les entiers negatifs en complement a deux, ou -1 correspond a tous les bits a 1. Cela permet au meme materiel d'effectuer addition et soustraction sans circuit separe
Essayez gratuitement — sans inscription
Calculer des operations binaires →Quand utiliser les operations bit a bit
Les operations bit a bit sont utilisees en programmation systeme, reseaux et applications sensibles aux performances.
- Drapeaux de permission -- les permissions de fichiers Unix (rwxr-xr-x = 0755) utilisent des champs de bits ou chaque bit represente une permission specifique, verifie avec AND et defini avec OR
- Masques de sous-reseau -- les ingenieurs reseau utilisent des operations AND entre les adresses IP et les masques de sous-reseau pour determiner les limites du reseau et acheminer le trafic correctement
- Graphisme et manipulation de couleurs -- les couleurs de pixels stockees en entiers 0xRRGGBB utilisent des decalages de bits et des masques pour extraire ou modifier les canaux rouge, vert et bleu individuellement
Foire aux questions
Quelle est la difference entre entiers signes et non signes ?
Les entiers non signes utilisent tous les bits pour la valeur, donc un entier non signe sur 8 bits va de 0 a 255. Les entiers signes reservent le bit le plus eleve pour le signe (positif ou negatif), donc un entier signe sur 8 bits va de -128 a 127 en complement a deux. Le choix affecte le comportement des operations de decalage a droite et de comparaison.
Le decalage de bits equivaut-il a multiplier ou diviser par 2 ?
Un decalage a gauche de n positions equivaut a multiplier par 2^n pour les entiers non negatifs. Le decalage a droite divise par 2^n, mais le comportement pour les nombres negatifs depend du type de decalage : arithmetique (preserve le signe) ou logique (remplit avec des zeros). Dans la plupart des langages, >> est arithmetique pour les types signes et >>> (quand disponible) est logique.
Pourquoi les operations bit a bit sont-elles encore pertinentes dans le code moderne ?
Les operations bit a bit sont largement utilisees dans les drapeaux de fonctionnalites, les systemes de permissions, les protocoles reseau, la cryptographie, les fonctions de hachage, le rendu graphique et la compression de donnees. Elles s'executent en un seul cycle CPU et n'utilisent pas de memoire supplementaire, ce qui les rend ideales pour les chemins critiques en performance. Les frameworks modernes les utilisent aussi en interne -- React les utilise pour les drapeaux d'effets, et Linux pour les permissions de fichiers.