Qu'est-ce que la fonction BITDECALG ?
BITDECALG (BITLSHIFT en anglais) te sert quand tu documentes ou reproduis dans Excel une opération que le code fait nativement au niveau des bits, comme construire un masque ou configurer un registre. Elle t'évite de recalculer toi-même la puissance de 2 correspondante à chaque décalage.
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.

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.
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.

Exemples pratiques pas à pas
Comment multiplier un nombre par une puissance de 2 avec la fonction BITDECALG
Tu prépares la table de référence d'un algorithme de hachage avant de le coder, et chaque entrée y est multipliée par une puissance de 2. Tes valeurs de base sont listées avec le nombre de crans à appliquer, et tu veux la valeur décalée sur toute la colonne en une recopie. La fonction BITDECALG pousse les bits vers la gauche et reproduit exactement l'instruction que le processeur exécutera.
- 1Dans une cellule, écris
=BITDECALG(. - 2En 1er argument : clique sur la cellule qui contient la valeur à décaler,
A2. Elle affiche3, et la fonction BITDECALG raisonne sur la forme binaire de ce nombre,11, plutôt que sur le chiffre lui-même. - 3En 2ᵉ argument : clique sur la cellule du nombre de crans à appliquer,
B2. Elle vaut2sur cette ligne. Chaque cran ajoute un zéro à droite de l'écriture binaire, si bien que11devient1100, soit12. - 4Ferme la parenthèse et appuie sur Entrée, puis recopie la formule vers le bas. Les deux références étant relatives, chaque ligne reprend sa propre valeur de départ et son propre nombre de crans.
=BITDECALG(A2; B2)3 (11) de deux crans vers la gauche et obtient 1100, soit 12. Chaque cran ajouté double la valeur, donc décaler de 2 revient à multiplier par 4 et décaler de 3 revient à multiplier par 8 (la ligne 7 monte ainsi à 56).Comment générer le masque binaire d'un bit avec la fonction BITDECALG
Tu rédiges la documentation d'un microcontrôleur dont chaque fonction matérielle s'active par un bit précis du registre de contrôle. La datasheet te donne la position de chaque bit, mais ton code a besoin de la valeur décimale du masque correspondant. La fonction BITDECALG construit ce masque en déplaçant un simple 1 jusqu'à la position voulue.
- 1Dans une cellule, écris
=BITDECALG(. - 2En 1er argument : saisis la valeur de départ de tout masque,
1. Un seul bit est allumé dans ce nombre, et c'est celui du rang le plus bas. - 3En 2ᵉ argument : clique sur la cellule où tu as reporté la position lue dans la datasheet,
B2. Le1monte alors du nombre de crans indiqué et se retrouve exactement à ce rang, ce qui fabrique le masque cherché. - 4Ferme la parenthèse et appuie sur Entrée, puis recopie la formule vers le bas. Le
1reste écrit en dur à chaque ligne et seule la position change, ce qui donne8pour le bit 3 et1024pour le bit 10.
=BITDECALG(1; B2)1 (un seul bit allumé en position 0) et le décaler de n crans fabrique le masque du bit n. Le bit 3 donne 8, le bit 5 donne 32, le bit 10 donne 1024 : à chaque fois la puissance de 2 correspondante, obtenue sans calcul à la main et sans risque d'erreur de recopie.Comment assembler deux octets en un mot 16 bits en combinant la fonction BITDECALG et la fonction BITOU
Tu prépares les trames d'un protocole série où chaque valeur voyage en deux octets séparés, et le récepteur attend un unique mot de 16 bits. Ta feuille contient les deux octets dans deux colonnes, et il te faut la valeur assemblée à transmettre. La fonction BITDECALG place le premier octet en haut du mot, puis un OU binaire vient y loger le second.
- 1Dans une cellule, écris
=BITOU(. - 2En 1er argument : écris le décalage de l'octet de poids fort et referme-le,
BITDECALG(A2; 8). La fonction BITDECALG pousse cet octet de huit crans vers la gauche, ce qui l'installe dans la moitié haute du mot et laisse les huit positions basses à zéro. - 3En 2ᵉ argument : clique sur la cellule de l'octet de poids faible,
B2. La fonction BITOU allume dans le résultat tout bit allumé d'un côté ou de l'autre, si bien que cet octet vient se loger dans les positions laissées libres sans rien écraser. - 4Ferme la parenthèse de la fonction BITOU et appuie sur Entrée. Il n'y en a qu'une seule à taper, puisque celle de la fonction BITDECALG a déjà été refermée à l'étape précédente.
=BITOU(BITDECALG(A2; 8); B2)255 et 255) remplissent ainsi les 16 bits et donnent 65535, la valeur maximale d'un mot de cette taille.
Les 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 DECBIN : =DECBIN(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
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.
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.
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.
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.
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
Continue sur ta lancée après la fonction BITDECALG : la leçon associée, un modèle prêt à l'emploi et le guide pour progresser.
Tout voir



