Aller au contenu principal

Qu'est-ce que la fonction BINHEX ?

Définition
La fonction BINHEX convertit un nombre binaire (base 2) en son équivalent hexadécimal (base 16). Le résultat est une chaîne de caractères contenant les chiffres 0-9 et les lettres A-F.

BINHEX (BIN2HEX en anglais) te sert dès qu'un registre ou un octet binaire doit rejoindre une notation que tout le monde lit couramment en informatique : couleurs web, adresses mémoire, codes machine. Plus court à écrire, moins d'erreurs de saisie qu'une suite de 0 et de 1.

L'hexadécimal est omniprésent en informatique : couleurs web, adresses IP, codes machine. BINHEX te permet de jongler entre ces représentations directement dans Excel, sans conversion manuelle.

Syntaxe

Clique sur un argument pour aller à son explication.

Excel traite les grands nombres binaires comme du texte. Pour des nombres sur 10 bits, le bit de gauche est le bit de signe (complément à deux) : un 1 en première position indique un nombre négatif.

Lucas, la mascotte du Dojo, inspecte les arguments de la fonction à la loupe

Comprendre chaque paramètre de la fonction BINHEX

BINHEX prend ton nombre binaire en premier, et c'est le seul argument obligatoire. Le second, nb_caractères, sert juste à dire combien de chiffres tu veux à l'arrivée : tu peux l'omettre si tu te fiches de la longueur, mais dès que tu construis un code couleur ou que tu alignes des octets, c'est lui qui force le 00 à rester 00 au lieu de se réduire à 0.

1

nombre

: le nombre binaire à convertir

Il ne peut contenir que les chiffres 0 et 1, et ne doit pas dépasser 10 caractères (10 bits).

Exemple : 1010 correspond à 10 en décimal et A en hexadécimal. Si tu dépasses 10 bits ou que tu saisis autre chose que des 0 et des 1, Excel renvoie #NOMBRE!.

2

[nb_caractères]

: le nombre de caractères du résultat(facultatif)

Excel ajoute des zéros à gauche si le résultat naturel est plus court que cette valeur.

Si tu omets ce paramètre, Excel utilise le minimum de caractères nécessaires. Ce paramètre est utile pour forcer un format fixe, par exemple 2 caractères par composante dans un code couleur hexadécimal.

Attention : Si nb_caractères est trop petit pour contenir le résultat, Excel renvoie #NOMBRE!. Augmente la valeur ou omets simplement ce paramètre.

Lucas, la mascotte du Dojo, fait une démonstration pas à pas de la fonction dans Excel

Exemples pratiques pas à pas

Exemple 1

Comment convertir un code binaire en hexadécimal avec la fonction BINHEX

Tu relèves les registres d'un microcontrôleur en binaire, mais la datasheet et le débogueur, eux, ne parlent qu'hexadécimal, et comparer huit 0 et 1 à un FF à l'oeil finit toujours mal. Ta colonne contient des codes comme 1010 ou 11001100, et tu veux leur écriture hexadécimale en face. La fonction BINHEX fait la traduction d'une base à l'autre et te rend une notation quatre fois plus courte.

Les étapes
  1. 1
    Dans une cellule, écris =BINHEX(.
  2. 2
    En 1er argument : clique sur la cellule qui contient le code binaire à traduire, ici A2 avec la chaîne 1010. Elle ne doit contenir que des 0 et des 1, et pas plus de dix chiffres, sinon la fonction renvoie #NOMBRE! au lieu du code hexadécimal.
  3. 3
    Ferme la parenthèse et appuie sur Entrée, puis recopie la formule vers le bas pour traiter les autres registres. La référence suit la ligne, si bien que chaque code binaire trouve son écriture hexadécimale en face de lui.
Au final, ta formule devrait ressembler à ça :=BINHEX(A2)
Explication
La fonction BINHEX découpe la chaîne en tranches de 4 bits et traduit chaque tranche par un seul caractère 0-9 ou A-F : 1010 tient donc sur le seul caractère A. C'est ce rapport de 4 bits pour 1 caractère qui fait qu'un octet comme 11111111 se résume à FF.
Exemple 2

Comment forcer deux caractères par octet avec la fonction BINHEX

Tu rends une fiche technique où chaque registre doit apparaître sur deux caractères hexadécimaux, comme dans toutes les datasheets, mais tes petites valeurs sortent sur un seul caractère et la colonne part en dents de scie. Tu as les codes binaires d'un côté et tu veux une colonne parfaitement alignée de l'autre. La fonction BINHEX accepte justement un second argument pour imposer la largeur du résultat.

Les étapes
  1. 1
    Dans une cellule, écris =BINHEX(.
  2. 2
    En 1er argument : clique sur la cellule qui contient le code binaire du registre, ici B2 avec la chaîne 11111111. La fonction BINHEX la lit de la même façon avec ou sans le réglage qui suit, seule la longueur du résultat change.
  3. 3
    En 2ᵉ argument : saisis le nombre de caractères que doit occuper le résultat, 2. Deux caractères, c'est la largeur d'un octet en hexadécimal, et la fonction BINHEX complète par des zéros à gauche dès que la traduction est plus courte. Réclamer moins de caractères que le résultat n'en occupe renvoie en revanche une erreur.
  4. 4
    Ferme la parenthèse et appuie sur Entrée, puis recopie la formule vers le bas. Toute la colonne s'aligne alors sur deux caractères, 0C compris pour le dernier registre.
Voici la formule que tu obtiens à la fin :=BINHEX(B2; 2)
Explication
Le second argument fixe la largeur du résultat, et la fonction BINHEX comble le manque avec des zéros à gauche : 1010 s'écrit 0A au lieu de A, 101 devient 05. Les octets déjà pleins comme 11111111 ne bougent pas, puisque FF occupe déjà les deux caractères demandés.
Le conseil du pro
Assemble un code couleur d'un coup : ="#"&BINHEX(B2;2)&BINHEX(B3;2)&BINHEX(B4;2) enchaîne les trois composantes RVB et sort #FF0000 dans une seule cellule. Le second argument 2 est vital : sans lui, 00000000 donnerait 0 au lieu de 00 et casserait le format.
Lucas, la mascotte du Dojo, l'air gêné face à une erreur Excel

Les erreurs fréquentes avec la fonction BINHEX

Deux choses peuvent coincer avec BINHEX, et toutes deux renvoient le même code #NOMBRE!. Le premier cas : ton entrée n'est pas un vrai binaire, un chiffre autre que 0 ou 1 s'y est glissé, ou tu as dépassé les 10 bits autorisés. Le second : ton nb_caractères est trop petit pour loger le résultat, comme demander FF sur un seul caractère.

Nombre binaire trop long ou avec des caractères invalides

Quand le nombre contient autre chose que des 0 et des 1, ou dépasse 10 chiffres (1111111111 est le maximum), Excel ne peut pas effectuer la conversion.

Solution : Vérifie que ton nombre ne contient que des 0 et des 1, et qu'il ne dépasse pas 10 bits. Si ta source de données peut produire des valeurs non binaires, utilise =SIERREUR(BINHEX(A1); "Invalide") pour gérer proprement les cas incorrects.

Paramètre nb_caractères trop petit pour le résultat

Si nb_caractères est inférieur au nombre de caractères nécessaires pour afficher le résultat, Excel renvoie #NOMBRE!. Par exemple, BINHEX(11111111; 1) échoue car FF fait 2 caractères.

Solution : Augmente la valeur de nb_caractères ou omets-le complètement pour laisser Excel déterminer la longueur minimale. Pour les codes couleur, utilise toujours 2 ; pour les valeurs sur 10 bits, utilise au minimum 3.

Lucas, la mascotte du Dojo, compare deux fonctions Excel

BINHEX vs BINOCT vs BINDEC

Ces trois fonctions partent du même binaire, c'est la base d'arrivée qui change. Prends BINHEX dès que tu manipules des couleurs web ou des adresses mémoire, là où la notation 0-9 plus A-F est le standard. BINOCT te sert surtout pour les permissions Unix (le fameux chmod), et BINDEC quand tu veux juste relire ton nombre en décimal pour un calcul ou un affichage normal.

CritèreBINHEXBINOCTBINDEC
Base de sortieHexadécimal (base 16)Octal (base 8)Décimal (base 10)
Chiffres de sortie0-9 et A-F0-70-9
Cas d'usage typiqueCouleurs web, adresses mémoirePermissions Unix (chmod), protocoles anciensCalculs courants, affichage
Limite en entrée10 bits max10 bits max10 bits max
Le savais-tu ?
Un principe qui simplifie toutes tes conversions : 4 bits binaires valent exactement 1 chiffre hexadécimal. Ainsi 1111 en binaire donne F en hexa, soit 15 en décimal. De quoi vérifier n'importe quelle conversion à la main.
FAQ

Questions fréquentes

En informatique, l'hexadécimal est beaucoup plus compact que le binaire : 4 bits binaires correspondent exactement à 1 chiffre hexadécimal. C'est pourquoi on l'utilise pour les adresses mémoire, les couleurs web (#FF0000), les adresses MAC et la documentation des systèmes embarqués. La lecture est plus rapide et les erreurs de saisie moins fréquentes.

Ressources

Pour aller plus loin

Continue sur ta lancée après la fonction BINHEX : la leçon associée, un modèle prêt à l'emploi et le guide pour progresser.

Tout voir