Qu'est-ce que la fonction BINDEC ?
BINDEC (BIN2DEC en anglais) te sert dès que tu dois relire un registre, une trame ou une valeur RGB codée en binaire sans reconstruire la conversion à la main, bit par bit. Cette fonction d'ingénierie est incontournable si tu travailles avec des données informatiques : masques de sous-réseau, registres de microcontrôleurs ou trames de protocoles série.
Elle élimine les conversions manuelles fastidieuses. Le binaire 1011 se transforme en 11 (8 + 0 + 2 + 1) en un seul appel, et tu peux l'appliquer sur toute une colonne avec une simple référence de cellule.
Syntaxe
=BINDEC(nombre)Clique sur un argument pour aller à son explication.
BINDEC est limitée à 10 bits. Les nombres sur 10 bits dont le bit le plus à gauche est 1 sont interprétés comme négatifs en notation de complément à deux (plage : -512 à 511). Pour des nombres binaires de plus de 10 bits, tu dois créer une formule personnalisée avec PUISSANCE et SOMME.

Comprendre chaque paramètre de la fonction BINDEC
nombre
: le nombre binaire à convertir, exprimé comme une chaîne de 0 et de 1Tu peux le saisir entre guillemets ("1011") ou référencer une cellule qui contient la valeur binaire.
La valeur peut contenir jusqu'à 10 caractères binaires. Tout caractère autre que 0 ou 1 provoque une erreur #NOMBRE!.
Attention : Sur 10 bits, tout nombre dont le bit de poids fort (le plus à gauche) est 1 est interprété comme négatif. Ainsi =BINDEC("1000000001") retourne -511 et non 513. Ce comportement suit la convention du complément à deux utilisée en informatique.

Exemples pratiques pas à pas
Comment convertir un code binaire en nombre décimal avec la fonction BINDEC
Un firmware te sort ses registres sous forme de codes binaires et tu dois les remettre en nombres pour les confronter aux valeurs de la datasheet. Ta colonne aligne des chaînes comme 1010 ou 11111111, et tu veux la valeur décimale en face de chacune. La fonction BINDEC lit chaque bit comme une puissance de 2 et te rend le nombre, sans aucune conversion à la main.
- 1Dans une cellule, écris
=BINDEC(. - 2En 1er argument : clique sur la cellule qui contient le code binaire à convertir,
A2. Elle affiche la chaîne1010, et pointer la cellule plutôt que retaper le code laisse la formule suivre chaque ligne du tableau. La fonction BINDEC n'accepte que des0et des1, sur dix caractères au maximum. - 3Ferme la parenthèse et appuie sur Entrée, puis recopie la formule vers le bas. La référence
A2se décale d'une ligne à chaque copie, si bien que chaque code reçoit sa propre valeur décimale.
=BINDEC(A2)1, en partant de la droite : dans 1010, le deuxième et le quatrième bit sont actifs, soit 2 + 8. Le résultat est un vrai nombre et non du texte, donc il repart directement dans tes calculs.Comment lire un code binaire signé sur 10 bits avec la fonction BINDEC
Un capteur code ses écarts sur 10 bits signés et les valeurs que tu relis n'ont aucun sens : la moitié devrait être négative. Tu as les trames brutes en binaire et tu veux savoir ce qu'elles valent réellement. La fonction BINDEC applique d'elle-même la convention du complément à deux dès que la chaîne atteint 10 caractères, et te rend donc les valeurs négatives telles quelles.
- 1Dans une cellule, écris
=BINDEC(. - 2En 1er argument : clique sur la cellule qui contient la trame du capteur,
A2. Elle affiche1111111111, soit les dix caractères complets renvoyés par l'appareil. La fonction BINDEC ne prend rien d'autre, donc aucun réglage ne vient dire ici si la trame doit être lue comme signée. - 3Ferme la parenthèse et appuie sur Entrée, puis recopie la formule sur les autres trames. La ligne
0111111111ressort positive à511alors qu'elle occupe elle aussi dix caractères, parce qu'elle commence par0.
=BINDEC(A2)1 et bascule en lecture signée (complément à deux) : 1111111111 ne vaut pas 1023 mais -1. La bascule ne dépend que du dixième caractère, puisque 0111111111 occupe toute la largeur mais commence par 0 et vaut bien 511.Comment gérer l'erreur #NOMBRE! de la fonction BINDEC avec SIERREUR
Un export t'a livré des trames binaires dont quelques-unes sont corrompues, et un #NOMBRE! s'affiche en plein milieu de ta colonne juste avant que tu transmettes le fichier. Tu veux que les trames valides se convertissent et que les autres portent une mention lisible plutôt qu'un code d'erreur. En imbriquant ta fonction BINDEC dans une fonction SIERREUR, tu choisis toi-même ce qui s'affiche quand la conversion échoue.
- 1Dans une cellule, écris
=SIERREUR(. - 2En 1er argument : écris la conversion à surveiller et referme-la,
BINDEC(A2). C'est elle qui travaille tant que le code reçu tient en dix caractères faits de0et de1. Elle refuse1102à cause du2, et11111111111parce qu'il en compte onze. - 3En 2ᵉ argument : saisis ce qui doit s'afficher quand la conversion échoue,
"Code invalide". Les guillemets sont obligatoires pour qu'Excel reprenne cette mention telle quelle. Sans ce second argument, la colonne resterait piquée de#NOMBRE!. - 4Ferme la parenthèse de la fonction SIERREUR et appuie sur Entrée. Celle de la fonction BINDEC a déjà été refermée au premier argument.
=SIERREUR(BINDEC(A2); "Code invalide")2 glissé dans la chaîne ou une trame de 11 caractères déclenchent le même #NOMBRE!, remplacé ici par « Code invalide ».
Les erreurs fréquentes avec la fonction BINDEC
BINDEC est pointilleuse sur ce qu'elle accepte : elle exige une chaîne faite uniquement de 0 et de 1, et pas plus de 10 caractères. Le moindre 2, lettre ou espace invisible venu d'un export déclenche un #NOMBRE!.
Le piège le plus sournois ne renvoie pourtant aucune erreur : sur 10 bits, un nombre qui commence par 1 ressort négatif (complément à deux). Tu attends 513, tu obtiens -511, et rien ne te prévient.
Erreur #NOMBRE! avec des caractères non binaires
=BINDEC("102") retourne #NOMBRE! car le chiffre 2 n'existe pas en binaire. BINDEC n'accepte que des 0 et des 1.
Solution : Vérifie que ta chaîne ne contient que des 0 et des 1. Si tes données proviennent d'un export, nettoie-les d'abord avec SUPPRESPACE pour éliminer les espaces invisibles, puis ajoute une validation pour rejeter les cellules non binaires.
Erreur #NOMBRE! avec plus de 10 caractères
=BINDEC("11111111111") (11 caractères) retourne #NOMBRE!. BINDEC est limitée à 10 bits maximum.
Solution : Pour des nombres binaires de plus de 10 bits, découpe la chaîne en segments de 10 bits et recompose manuellement avec PUISSANCE et SOMME. Il n'existe pas de contournement natif simple dans Excel pour les grands nombres binaires.
Erreur #NOMBRE! avec du texte non numérique
=BINDEC("ABC") retourne #NOMBRE! car la chaîne n'est pas un binaire valide : BINDEC n'accepte que des 0 et des 1. Une lettre, un espace ou tout autre caractère parasite venu d'un export déclenche la même erreur.
Solution : Assure-toi que la cellule source contient uniquement des chiffres 0 et 1. Pour les imports de données, ajoute =SIERREUR(BINDEC(A1); "") pour afficher une cellule vide en cas d'erreur plutôt que de bloquer tout le tableau.
Résultat négatif inattendu sur 10 bits
Tout nombre binaire de 10 bits commençant par 1 est interprété comme négatif. =BINDEC("1000000001") retourne -511 et non 513, car Excel applique la notation du complément à deux.
Solution : Si tu travailles avec des nombres non signés sur 10 bits (plage 0 à 1023), convertis manuellement : =SI(BINDEC(A1)<0; BINDEC(A1)+1024; BINDEC(A1)) annule l'interprétation signée.

BINDEC vs BINHEX vs BINOCT vs DECBIN
Toutes partent d'un nombre binaire, mais elles ne visent pas la même base d'arrivée : prends BINDEC pour lire une valeur décimale (registres, octets d'une adresse IP), BINHEX pour basculer en hexadécimal (couleurs RGB, codes HTML) et BINOCT pour l'octal (permissions Unix de type chmod).
DECBIN est l'opération miroir : c'est elle qu'il te faut quand tu pars du décimal pour fabriquer un masque binaire, pas l'inverse.
| Critère | BINDEC | BINHEX | BINOCT | DECBIN |
|---|---|---|---|---|
| Conversion effectuée | Binaire → Décimal | Binaire → Hexadécimal | Binaire → Octal | Décimal → Binaire |
| Base source | Base 2 | Base 2 | Base 2 | Base 10 |
| Base cible | Base 10 | Base 16 | Base 8 | Base 2 |
| Limite de bits | 10 bits max | 10 bits max | 10 bits max | -512 à 511 |
| Usage typique | Lecture de registres, IP | Couleurs RGB, HTML | Permissions Unix (chmod) | Générer des masques binaires |
Questions fréquentes
BINDEC convertit du binaire vers le décimal, tandis que DECBIN fait l'inverse : il convertit du décimal vers le binaire. Ce sont des fonctions complémentaires.
Par exemple, =BINDEC("1011") retourne 11, et =DECBIN(11) retourne "1011".
Excel limite BINDEC à 10 bits pour gérer les nombres signés en complément à deux. Cela permet de représenter des valeurs de -512 à 511 en décimal. Au-delà de 10 bits, tu dois créer une formule personnalisée qui multiplie chaque bit par sa puissance de 2 correspondante.
Pour les nombres binaires plus longs, découpe-les en segments de 10 bits ou moins, puis recompose la valeur décimale avec PUISSANCE et SOMME. Alternativement, tu peux utiliser une formule matricielle qui extrait chaque bit avec STXT, le multiplie par sa puissance de 2, et additionne le tout. C'est plus complexe mais contourne la limite des 10 bits.
Oui. Tu peux imbriquer BINDEC dans DECHEX pour aller directement du binaire vers l'hexadécimal : =DECHEX(BINDEC("11111111")) retourne "FF".
Tu peux aussi l'utiliser avec SI pour valider des données, avec SOMME pour additionner des valeurs binaires converties, ou avec SIERREUR pour traiter proprement les cas d'erreur dans tes tableaux.
Utilise =SIERREUR(BINDEC(A1); "Invalide") pour gérer les erreurs proprement dans ton tableau. Si la valeur en A1 est un binaire valide, le résultat décimal s'affiche ; sinon, tu vois "Invalide".
Pour une validation plus stricte, vérifie que la cellule ne contient que des 0 et 1 avec une formule comme =NBCAR(A1)-NBCAR(SUBSTITUE(SUBSTITUE(A1;"0";"");"1";""))=0.
Pour aller plus loin
Continue sur ta lancée après la fonction BINDEC : la leçon associée, un modèle prêt à l'emploi et le guide pour progresser.
Tout voir



