Aller au contenu principal

Qu'est-ce que la fonction HEXOCT ?

Définition
La fonction HEXOCT convertit un nombre en base 16 (hexadécimal) en base 8 (octal). Elle accepte optionnellement un nombre de caractères pour forcer l'affichage sur une longueur fixe avec des zéros en tête.

HEXOCT t'évite de repasser par le décimal quand tu dois traduire une valeur hexadécimale de documentation technique vers l'octal attendu par une commande système UNIX. Elle fait le pont directement entre les deux notations, en un instant.

Concrètement, c'est elle qu'utilisent les administrateurs système pour traduire des permissions de fichiers d'un format hex vers la notation chmod, les développeurs embarqués pour adapter des adresses de ports documentées en hexadécimal vers les registres anciens en octal, et les étudiants en informatique pour construire des tables de correspondance entre bases numériques.

Syntaxe

Clique sur un argument pour aller à son explication.

Le bit de poids fort est le bit de signe. Les valeurs hexadécimales commençant par FFE0000000 à FFFFFFFFFF représentent des nombres négatifs en complément à deux sur 40 bits. Pour des conversions strictement positives, assure-toi que ta valeur ne dépasse pas 1FFFFFFF.

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

Comprendre chaque paramètre de la fonction HEXOCT

HEXOCT attend d'abord ta valeur hexadécimale, puis éventuellement le nombre de caractères du résultat. Ce second argument est facultatif : sans lui, Excel ajuste la longueur tout seul ; avec lui, il rembourre de zéros à gauche pour que tes octaux s'alignent sur une largeur fixe dans une colonne.

1

nombre

: le nombre hexadécimal à convertir en octal

Il peut contenir jusqu'à 10 caractères (40 bits). Les caractères valides sont les chiffres 0-9 et les lettres A-F, en majuscules ou en minuscules : =HEXOCT("FF") et =HEXOCT("ff") donnent le même résultat.

Tu peux passer la valeur entre guillemets ("1ED") ou comme référence vers une cellule contenant une chaîne hexadécimale.

Attention : Tout caractère autre que 0-9 et A-F provoque une erreur #NOMBRE!. Vérifie que ta source ne contient pas de préfixe 0x ou d'espaces parasites.

2

[nb_caractères]

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

HEXOCT ajoute des zéros à gauche pour atteindre cette longueur. Utile pour aligner une colonne de résultats sur une largeur fixe.

Si le résultat réel est plus long que nb_caractères, la fonction retourne #VALEUR!. Omets ce paramètre pour laisser Excel adapter automatiquement la longueur au résultat.

Le conseil du pro
En octal, chaque chiffre encode 3 bits de permissions : 4 pour la lecture (r), 2 pour l'écriture (w), 1 pour l'exécution (x). Additionne-les pour décoder un chmod d'un coup d'œil : 7 vaut rwx (4+2+1), 5 vaut r-x (4+1) et 4 vaut r-- tout seul.
Lucas, la mascotte du Dojo, fait une démonstration pas à pas de la fonction dans Excel

Exemples pratiques pas à pas

Exemple 1

Comment convertir des permissions hexadécimales en octal avec la fonction HEXOCT

La documentation de l'outil que tu déploies liste les permissions de ses fichiers en hexadécimal, alors que la commande chmod ne comprend que l'octal. Entre les deux, la conversion à la main passe par le décimal et se trompe d'un chiffre sans prévenir, ce qui donne un fichier de secrets lisible par tout le serveur. La fonction HEXOCT fait le trajet d'un bloc, et tu recopies son résultat directement dans ta commande.

Les étapes
  1. 1
    Dans une cellule, écris =HEXOCT(.
  2. 2
    En 1er argument : clique sur la cellule qui contient la valeur hexadécimale, B2. Elle affiche la permission 1FF, telle que la documentation l'écrit, et la fonction lit aussi bien les majuscules que les minuscules.
  3. 3
    Ferme la parenthèse et appuie sur Entrée, puis recopie la formule vers le bas pour traduire chaque permission de la colonne.
Au final, ta formule devrait ressembler à ça :=HEXOCT(B2)
Explication
La fonction passe de la base 16 à la base 8 sans étape intermédiaire : 1FF vaut 511, et 511 s'écrit 777 en octal. Le reste de la colonne donne les permissions classiques d'un serveur, 755 pour un script exécutable et 644 pour un fichier de configuration ordinaire.
Exemple 2

Comment aligner des permissions sur quatre chiffres avec la fonction HEXOCT

Tu prépares un script de déploiement qui applique les permissions fichier par fichier, et sa convention impose la notation octale à quatre chiffres, celle où un zéro de tête précède le triplet habituel. Sur trois chiffres, ta colonne se lit mal et le script refuse la moitié des lignes. Tu veux que cette largeur soit garantie par la formule elle-même, pas par une mise en forme qui saute au premier copier-coller.

Les étapes
  1. 1
    Dans une cellule, écris =HEXOCT(.
  2. 2
    En 1er argument : clique sur la cellule qui contient la permission en hexadécimal, B2. Elle vaut 1ED pour le script de déploiement.
  3. 3
    En 2ᵉ argument : saisis le nombre de caractères imposé au résultat, 4. La fonction complète alors l'octal avec des zéros à gauche jusqu'à cette largeur, ce qui transforme 755 en 0755 sans en changer la valeur.
  4. 4
    Ferme la parenthèse et appuie sur Entrée.
Voici la formule que tu obtiens à la fin :=HEXOCT(B2; 4)
Explication
La longueur demandée n'agit que sur l'habillage : 1ED vaut toujours 755, et le 4 ajoute simplement le zéro de tête qui manquait. Attention au sens de cet argument, il impose un minimum et non un maximum : une largeur plus courte que le résultat ne le tronque pas, elle rend l'erreur #NOMBRE!.
Exemple 3

Comment corriger l'erreur #NOMBRE! de la fonction HEXOCT

Tu rassembles dans une seule feuille les permissions de plusieurs documentations et certaines lignes refusent de se convertir. Comme toutes les valeurs se ressemblent à l'écran, tu veux identifier la cause propre à chaque ligne avant de corriger l'ensemble.

Les étapes
  1. 1
    Dans une cellule, écris =HEXOCT(.
  2. 2
    En 1er argument : clique sur la cellule qui contient la valeur à convertir, A2. Deux pièges se cachent dans cette colonne. Le G de 1G4 ne fait pas partie du jeu hexadécimal, et le 0x de 0x1FF est un préfixe de langage que la fonction ne reconnaît pas.
  3. 3
    En 2ᵉ argument : clique sur la cellule qui fixe la largeur du résultat, B2. La ligne 1FF sur 2 renvoie #NOMBRE! parce que son résultat 777 réclame trois chiffres, et cette largeur reste un minimum à atteindre, jamais une troncature.
  4. 4
    Ferme la parenthèse et appuie sur Entrée. Pour distinguer les deux familles de fautes, relance la conversion sans le second argument. Une valeur qui passe seule accuse la largeur, une valeur qui échoue encore accuse ses propres caractères.
Une fois les morceaux assemblés, ta formule donne ça :=HEXOCT(A2; B2)
Explication
L'erreur #NOMBRE! ne distingue pas ses causes. Sur les lignes 1FF et 1ED, la valeur est parfaitement valide et c'est la largeur de 2 qui manque de place pour trois chiffres. Sur 1G4 et 0x1FF, c'est l'entrée elle-même qui n'est pas hexadécimale, et aucun réglage de largeur n'y changera quoi que ce soit.
Le savais-tu ?
HEXOCT convertit l'hexadécimal directement en octal, sans passer par le décimal. À la main, tu ferais deux étapes, hexadécimal vers décimal puis décimal vers octal, avec un risque d'erreur à chacune : ici, une seule formule recopiée sur toute la colonne.
Lucas, la mascotte du Dojo, l'air gêné face à une erreur Excel

Les erreurs fréquentes avec la fonction HEXOCT

Trois grains de sable enrayent HEXOCT, et ils viennent toujours de la donnée d'entrée. Un caractère qui n'est ni 0-9 ni A-F (un 0x collé devant, un espace, une lettre comme G) déclenche #NOMBRE!. Un nb_caractères trop court pour contenir le résultat sort #VALEUR!. Et une valeur très haute, à partir de FFE0000000, bascule en négatif à cause du complément à deux sur 40 bits.

Erreur #NOMBRE! – caractère hexadécimal invalide

Ta valeur contient un caractère non hexadécimal : lettre G à Z, espace, tiret, préfixe 0x, etc. Par exemple =HEXOCT("GG") échoue car G n'est pas un chiffre hexadécimal valide.

Solution : Vérifie que ta cellule source ne contient que les caractères 0-9 et A-F (ou a-f). Si tes données viennent d'une source externe avec un préfixe 0x, utilise =HEXOCT(STXT(A1;3;100)) pour supprimer le préfixe avant conversion.

Erreur #VALEUR! – résultat trop long pour nb_caractères

Le résultat octal est plus long que la valeur spécifiée dans nb_caractères. Par exemple, =HEXOCT("FF"; 2) échoue car FF377 fait 3 caractères, qui ne tiennent pas dans 2.

Solution : Augmente nb_caractères pour qu'il soit au moins aussi grand que la longueur du résultat, ou omets ce paramètre pour laisser Excel déterminer la longueur automatiquement.

Résultat négatif inattendu

Les grandes valeurs hexadécimales (à partir de FFE0000000) sont interprétées comme des nombres négatifs en complément à deux sur 40 bits, ce qui produit un résultat octal négatif.

Solution : Pour des conversions strictement positives, assure-toi que ta valeur hexadécimale ne dépasse pas 1FFFFFFF (environ 536 millions en décimal). Si ta valeur est plus grande, décompose la conversion par blocs.

Lucas, la mascotte du Dojo, compare deux fonctions Excel

HEXOCT vs HEXBIN vs HEXDEC vs OCTHEX

Le choix se joue sur la base d'arrivée. Garde HEXOCT quand tu vises de l'octal, typiquement des permissions Unix à passer à chmod. Prends HEXBIN si tu veux lire les bits un à un pour des flags, HEXDEC si la valeur doit retomber dans un calcul numérique classique, et OCTHEX pour faire le chemin inverse, de l'octal vers l'hexadécimal. À noter : HEXDEC est la seule des quatre à ne pas accepter d'argument de longueur.

CritèreHEXOCTHEXBINHEXDECOCTHEX
ConversionHexadécimal → OctalHexadécimal → BinaireHexadécimal → DécimalOctal → Hexadécimal
Base sourceBase 16Base 16Base 16Base 8
Base cibleBase 8Base 2Base 10Base 16
Paramètre longueurOuiOuiNonOui
Cas d'usage typiquePermissions Unix (chmod)Analyse de bits, flagsCalculs numériquesInverse de HEXOCT
FAQ

Questions fréquentes

L'octal est historiquement lié aux systèmes UNIX car chaque chiffre octal représente exactement 3 bits, ce qui correspond parfaitement aux 3 bits de permissions (rwx) pour chaque catégorie d'utilisateurs (propriétaire, groupe, autres). Cette convention s'est maintenue dans des commandes comme chmod 755 que tout administrateur système utilise encore quotidiennement.

Ressources

Pour aller plus loin

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

Tout voir