BITDECALG (BITLSHIFT en anglais) te permet de décaler les bits d'un nombre vers la gauche, ce qui équivaut à une multiplication ultra-rapide par une puissance de 2. Tu optimises du code, tu configures des registres électroniques, ou tu manipules des données binaires ? C'est la fonction qu'il te faut pour des calculs bit à bit performants et précis.
Elle s'adresse surtout aux développeurs, ingénieurs embarqués et data scientists qui modélisent des opérations bas niveau : chaque décalage d'une position multiplie le nombre par 2, et Excel gère des entiers jusqu'à 48 bits.
Syntaxe de la fonction BITDECALG
=BITDECALG(nombre; décalage)Comprendre chaque paramètre de la fonction BITDECALG
Deux arguments, dans cet ordre et tous les deux obligatoires : d'abord nombre, l'entier que tu veux décaler, puis décalage, le nombre de positions vers la gauche. Garde en tête que chaque position de décalage multiplie ton nombre par 2, donc un décalage de 3 revient à multiplier par 8.
nombre
: l'entier positif dont tu veux décaler les bits vers la gaucheIl doit être supérieur ou égal à zéro. Excel travaille avec des entiers sur 48 bits, donc ton nombre de départ doit rester dans cette plage.
En binaire, chaque bit du nombre sera décalé vers la gauche (vers les positions de poids plus fort). Par exemple, 5 s'écrit 101 en binaire ; décalé de 2 positions, il devient 10100, soit 20 en décimal.
Astuce : Pense au nombre en représentation binaire pour visualiser l'opération. Si tu veux vérifier, =DEC2BIN(BITDECALG(5;2)) retourne 10100, ce qui confirme le décalage.
décalage
: le nombre de positions de décalage vers la gaucheChaque position décalée multiplie le nombre par 2. Par exemple, un décalage de 3 équivaut à multiplier par 2³ = 8. Si tu passes 0, le nombre reste inchangé.
Mathématiquement, =BITDECALG(nombre; n) = nombre × 2^n. Sur un processeur, cette opération est une instruction élémentaire, beaucoup plus rapide qu'une multiplication générique.
Astuce : En optimisation de code, les puissances de 2 (2, 4, 8, 16, 32…) sont souvent remplacées par des décalages de bits. BITDECALG te permet de documenter et de valider ces optimisations directement dans Excel.
Exemples pratiques pas à pas
Développeur : multiplier rapidement par puissance de 2
Tu es développeur ou data scientist. Tu dois optimiser des calculs qui impliquent des multiplications par des puissances de 2, typiques dans les algorithmes de hachage, les tables de hash ou le calcul d'indices de tableaux. BITDECALG te permet de modéliser ces opérations ultra-rapides dans Excel avant de les coder.
Par exemple, 3 décalé de 2 positions = 3 × 4 = 12. C'est exactement ce que fait le processeur sous le capot lors d'un left shift en C, Python ou assembleur. Le tableau ci-dessus te montre les équivalences pour plusieurs valeurs.
| A | B | C | |
|---|---|---|---|
| 1 | Valeur de base | Décalage | Résultat |
| 2 | 3 | 2 | 12 |
| 3 | 7 | 3 | 56 |
| 4 | 10 | 4 | 160 |
| 5 | 1 | 5 | 32 |
| 6 | 15 | 2 | 60 |
=BITDECALG(A2;B2)Ingénieur électronique : configuration de registres
Tu es ingénieur électronique ou développeur firmware. Tu dois configurer des registres de microcontrôleurs où chaque bit représente un flag ou une option de configuration. Pour positionner un bit à une position spécifique, on génère un masque en décalant le chiffre 1 d'autant de positions que souhaité.
Par exemple, pour activer le bit 3 d'un registre, le masque est 8 (0000 1000 en binaire). BITDECALG te génère ces masques automatiquement pour ta documentation ou tes calculs de validation, sans avoir à calculer les puissances de 2 à la main.
| A | B | C | |
|---|---|---|---|
| 1 | Flag (bit) | Position | Masque binaire |
| 2 | 1 | 0 | 1 |
| 3 | 1 | 3 | 8 |
| 4 | 1 | 5 | 32 |
| 5 | 1 | 7 | 128 |
| 6 | 1 | 10 | 1024 |
=BITDECALG(A2;B2)Astuce de pro : Combine =BITDECALG(1;n) avec BITOU pour activer plusieurs bits simultanément : =BITOU(BITDECALG(1;3);BITDECALG(1;5)) donne 40, soit les bits 3 et 5 activés ensemble.
Programmeur embarqué : calculs d'adresses mémoire
Tu es programmeur de systèmes embarqués et tu dois calculer des adresses mémoire alignées. Les adresses sont souvent des multiples de puissances de 2 : alignement sur 4, 8, 16 octets. BITDECALG te permet de calculer rapidement ces offsets.
Avec une taille de bloc de 2^4 = 16 octets, chaque bloc commence à une adresse multiple de 16 : index 1 → adresse 16, index 2 → adresse 32, etc. Tu peux préparer ta table d'adressage dans Excel, vérifier que tout est correctement aligné, puis documenter le layout mémoire avant de le coder en C ou en assembleur.
| A | B | C | |
|---|---|---|---|
| 1 | Index bloc | Taille (2^n) | Adresse de base |
| 2 | 0 | 4 | 0 |
| 3 | 1 | 4 | 16 |
| 4 | 2 | 4 | 32 |
| 5 | 5 | 4 | 80 |
| 6 | 10 | 4 | 160 |
=BITDECALG(A2;B2)Envie de t'entraîner sur de vrais exercices Excel ?
M'entraînerLes erreurs fréquentes avec la fonction BITDECALG
BITDECALG est pointilleuse sur ce que tu lui donnes : elle ne digère que des entiers positifs ou zéro. Un nombre négatif renvoie aussitôt #NOMBRE!, un décimal comme 5,5 est tronqué à 5 en silence (sans le moindre avertissement), et un décalage trop ambitieux qui pousse le résultat au-delà des 48 bits d'Excel déclenche lui aussi #NOMBRE!.
Utiliser un nombre négatif
BITDECALG attend des entiers positifs ou zéro. =BITDECALG(-5;2) retourne #NOMBRE! car les opérations sur bits travaillent avec des entiers non signés.
Solution : Vérifie que ton argument nombre est supérieur ou égal à zéro avant d'appeler la fonction : =BITDECALG(5;2) retourne bien 20.
Décalage trop important, dépassement 48 bits
Si le résultat dépasse la capacité d'Excel (48 bits), la fonction retourne #NOMBRE!. Par exemple, =BITDECALG(1000000;40) génère un nombre bien supérieur à 2^48.
Solution : Garde tes décalages raisonnables. Pour des valeurs de départ importantes, teste d'abord avec =PUISSANCE(2;décalage)*nombre pour estimer l'ordre de grandeur avant d'utiliser BITDECALG.
Utiliser des nombres décimaux
BITDECALG attend des entiers. Si tu passes 5,5, Excel tronque silencieusement à 5 sans avertir. Ce comportement peut entraîner des résultats inattendus si la troncature n'était pas souhaitée.
Solution : Utilise ENT() ou ARRONDI.INF() pour convertir explicitement tes valeurs en entiers avant de les passer à BITDECALG : =BITDECALG(ENT(A1);B1).
Astuces avancées avec BITDECALG
Visualiser le résultat en binaire
Pour vérifier visuellement qu'un décalage produit le bon pattern de bits, combine BITDECALG avec DEC2BIN : =DEC2BIN(BITDECALG(5;2)) retourne 10100, la représentation binaire de 20.
C'est très utile pour déboguer des configurations de registres ou enseigner le concept.
Générer des masques de bits pour plusieurs flags
Combine =BITDECALG(1;n) avec BITOU pour activer plusieurs positions en une seule formule : =BITOU(BITDECALG(1;3);BITDECALG(1;5)) active les bits 3 et 5 simultanément (résultat : 8 + 32 = 40).
C'est la base de tout système de gestion de flags en programmation bas niveau documenté dans Excel.
Vérifier l'équivalence avec la multiplication
Pour valider tes calculs ou enseigner le concept, compare le résultat de BITDECALG avec la multiplication équivalente : =BITDECALG(A1;B1)=A1*PUISSANCE(2;B1) retourne VRAI si les deux sont identiques.
Cette vérification est utile dans un modèle de formation ou de documentation technique.
Questions fréquentes sur la fonction BITDECALG
Pourquoi décaler des bits vers la gauche ?
Le décalage vers la gauche équivaut à une multiplication par une puissance de 2. Par exemple, décaler 5 de 2 positions (5 × 2²) donne 20. Sur un processeur, c'est une instruction élémentaire, bien plus rapide qu'une multiplication classique. En programmation bas niveau, c'est une technique d'optimisation courante.
Quelle est la limite du décalage ?
Excel travaille avec des nombres sur 48 bits. Si le décalage est trop important et que le résultat dépasse cette limite, tu obtiendras #NOMBRE!. En pratique, des décalages de plus de 30 positions sont rares et risquent de provoquer un dépassement selon la valeur de départ.
Peut-on décaler vers la droite avec BITDECALG ?
Non, BITDECALG décale uniquement vers la gauche. Pour décaler vers la droite, utilise BITDECALD. Le décalage vers la droite divise par des puissances de 2, tandis que le décalage vers la gauche multiplie. Ce sont deux opérations complémentaires.
BITDECALG fonctionne-t-elle avec des nombres négatifs ?
Non. BITDECALG attend des entiers positifs ou zéro. Si tu passes un nombre négatif, Excel retourne #NOMBRE!. Les opérations sur bits travaillent avec des entiers non signés ; la représentation binaire des négatifs (complément à 2) complexifie les décalages.
Quelle différence entre BITDECALG et une multiplication par 2^n ?
Sur le plan mathématique, BITDECALG(nombre; n) est identique à nombre × 2^n. Sur le plan technique, le décalage de bits est une instruction processeur plus rapide qu'une multiplication générique. Dans Excel, la différence de vitesse est imperceptible, mais la fonction reste utile pour documenter des optimisations de code ou modéliser des calculs binaires.
Pour aller plus loin
Les fonctions similaires : BITDECALD, BITOU, BITET, BITOUEXCLUSIF, PUISSANCE
Bloqué sur une formule Excel ?
Pose ta question à notre assistant Excel IA, il te sort la bonne formule en quelques secondes.
Essayer l'assistant IAGratuit · 10 questions par mois
