La fonction DECOCT convertit un nombre décimal (base 10) en son équivalent octal (base 8). C'est la base de tout ce qui touche aux permissions de fichiers Unix/Linux, où chaque chiffre octal encode trois bits de permissions (lecture, écriture, exécution).
Si tu travailles en administration système, en programmation bas niveau ou en cybersécurité, tu croiseras forcément l'octal. DECOCT te permet de calculer des permissions dynamiquement dans Excel, de générer des tables de conversion ou de documenter des configurations système sans jamais faire de conversion à la main.
Syntaxe de la fonction DECOCT
=DECOCT(nombre; [nb_caractères])Les nombres négatifs sont représentés en complément à deux sur 30 bits. Par exemple, =DECOCT(-1) retourne "7777777777" (10 caractères), ce qui peut surprendre si tu attends un signe moins.
Comprendre chaque paramètre de la fonction DECOCT
DECOCT prend d'abord le nombre à convertir, puis un second argument facultatif qui fixe la largeur du résultat. C'est ce nb_caractères qu'on néglige le plus souvent, alors que c'est lui qui te donne des permissions Unix bien alignées sur 3 chiffres (007 plutôt que 7) au lieu d'une colonne en dents de scie.
nombre
: le nombre décimal entier à convertir en octalIl peut être saisi directement ou provenir d'une référence de cellule. La plage acceptée est -536 870 912 à 536 870 911, ce qui couvre largement les besoins courants (permissions Unix, codes ASCII, masques de bits).
Si tu passes un nombre avec une partie décimale (ex. 7,9), Excel tronque silencieusement la partie après la virgule et convertit l'entier (7 dans ce cas). Pour arrondir au lieu de tronquer, utilise ARRONDI avant : =DECOCT(ARRONDI(A1;0)).
Astuce : Tu peux passer une expression arithmétique directement : =DECOCT(4+2+1) calcule 7 puis convertit, ce qui est très pratique pour calculer des permissions Unix en additionnant les droits (lecture=4, écriture=2, exécution=1).
Attention : Au-delà de la plage -536 870 912 à 536 870 911, Excel retourne #NOMBRE!. Si tu travailles avec des valeurs potentiellement hors plage, protège-toi avec =SIERREUR(DECOCT(A1); "Hors plage").
[nb_caractères]
: le nombre de caractères à utiliser pour le résultat(facultatif)Si omis, Excel utilise le minimum nécessaire. Si spécifié, le résultat est complété avec des zéros non significatifs à gauche pour atteindre la longueur demandée.
Ce paramètre est essentiel pour formater uniformément des colonnes de valeurs octales, respecter un format de données technique (ex. permissions Unix toujours sur 3 chiffres), ou aligner visuellement des tableaux de conversion.
Astuce : Pour les permissions Unix, utilise toujours nb_caractères = 3 afin d'avoir le format 755, 644, 600 etc. et non 755, 644, 600 avec potentiellement un résultat à 1 ou 2 chiffres sans padding.
Attention : Si nb_caractères est trop petit pour contenir le résultat, Excel retourne #NOMBRE!. Par exemple, =DECOCT(100;2) échoue car 100 en octal est "144" (3 caractères).
Pas envie d'écrire la formule DECOCT à la main ?
Génère-la avec notre IAExemples pratiques pas à pas
Administrateur système : permissions de fichiers Unix
Tu es administrateur système et tu génères des scripts de configuration. Plutôt que de mémoriser les valeurs octales des permissions, tu calcules chaque niveau (propriétaire, groupe, autres) en additionnant les droits (lecture=4, écriture=2, exécution=1), puis tu convertis.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Calcul décimal | Formule | Permission octal | Signification |
| 2 | 493 | =DECOCT(493;3) | 755 | rwxr-xr-x (standard web) |
| 3 | 420 | =DECOCT(420;3) | 644 | rw-r--r-- (lecture seule) |
| 4 | 384 | =DECOCT(384;3) | 600 | rw------- (privé) |
=DECOCT(493;3)La fonction convertit la valeur décimale 493 en octal et renvoie directement 755 (propriétaire 7, groupe 5, autres 5). Le second argument (3) force toujours un résultat à 3 chiffres, même pour les petites valeurs.
Astuce de pro : Pour calculer les permissions depuis des cases à cocher (A1=lecture, A2=écriture, A3=exécution pour le propriétaire, etc.) : =DECOCT((A1*4+A2*2+A3)*64 + (B1*4+B2*2+B3)*8 + (C1*4+C2*2+C3); 3).
Développeur : conversions octales de base
Tu construis une table de référence pour comprendre la correspondance entre bases. Dans le système octal, chaque position représente une puissance de 8 : 10 en octal vaut 1×8 + 0 = 8 en décimal ; 100 vaut 1×64 = 64 ; 777 vaut 7×64 + 7×8 + 7 = 511.
| A | B | C | |
|---|---|---|---|
| 1 | Décimal | Formule | Résultat octal |
| 2 | 8 | =DECOCT(8) | 10 |
| 3 | 64 | =DECOCT(64) | 100 |
| 4 | 511 | =DECOCT(511) | 777 |
=DECOCT(8)Sans second argument, la fonction renvoie le minimum de chiffres nécessaires : 8 devient 10 en octal (chaque position vaut une puissance de 8). Elle gère seule cette progression, évitant les erreurs de la division successive par 8.
Technicien : formatage avec zéros non significatifs
Tu rédiges une documentation technique et tu as besoin de présenter des valeurs octales de manière cohérente, avec une largeur fixe. Le paramètre nb_caractères complète automatiquement avec des zéros à gauche.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Décimal | Formule | Résultat | Explication |
| 2 | 7 | =DECOCT(7;3) | 007 | Complété avec zéros |
| 3 | 64 | =DECOCT(64;5) | 00100 | Format sur 5 caractères |
| 4 | 511 | =DECOCT(511;4) | 0777 | Format sur 4 caractères |
=DECOCT(7;3)Ici, la fonction convertit 7 en octal (7) puis complète à gauche avec des zéros pour atteindre les 3 caractères demandés, d'où 007. Ce padding est indispensable pour aligner des colonnes ou respecter un format de spécification.
Formateur : table de conversion multi-bases
Tu crées du matériel pédagogique sur les bases numériques. En combinant DECBIN pour le binaire, DECOCT pour l'octal et DECHEX pour l'hexadécimal dans trois colonnes adjacentes, tu génères automatiquement une table de conversion complète pour n'importe quelle plage de valeurs.
Cette approche garantit la cohérence, évite les erreurs de frappe et permet de mettre à jour le tableau en changeant simplement les valeurs décimales de référence.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Décimal | Binaire (réf) | Formule octal | Octal | Hexadécimal (réf) |
| 2 | 7 | 111 | =DECOCT(7) | 7 | 7 |
| 3 | 8 | 1000 | =DECOCT(8) | 10 | 8 |
| 4 | 15 | 1111 | =DECOCT(15) | 17 | F |
| 5 | 16 | 10000 | =DECOCT(16) | 20 | 10 |
=DECOCT(8)Analyste : combiner calculs et conversion
Tu peux passer une expression arithmétique directement à DECOCT sans cellule intermédiaire. C'est particulièrement utile pour calculer des permissions Unix en additionnant les droits, puis convertir en une seule formule.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Opération | Formule complète | Résultat décimal | Résultat octal |
| 2 | 4+2+1 | =DECOCT(4+2+1;3) | 7 | 007 |
| 3 | 256+128+64 | =DECOCT(256+128+64;4) | 448 | 0700 |
| 4 | 512/2 | =DECOCT(512/2;4) | 256 | 0400 |
=DECOCT(4+2+1;3)La fonction évalue d'abord l'addition 4+2+1 (soit 7) puis convertit le résultat en octal sur 3 chiffres, d'où 007. Pas besoin de cellule intermédiaire : le calcul des droits et la conversion tiennent dans une seule formule.
Envie de t'entraîner sur de vrais exercices Excel ?
M'entraînerLes erreurs fréquentes avec la fonction DECOCT
Le #NOMBRE! est de loin ce que tu verras le plus avec DECOCT, et il vient de deux endroits : soit ton nombre sort de la plage -536 870 912 à 536 870 911, soit le nb_caractères demandé est trop court pour contenir le résultat (=DECOCT(100;2) plante car 144 tient sur 3 chiffres).
Viennent ensuite le #VALEUR! quand la cellule source contient du texte au lieu d'un nombre, et le piège des négatifs qui sortent en complément à deux (=DECOCT(-1) donne "7777777777") plutôt qu'avec un signe moins.
Erreur #NOMBRE! par dépassement de plage
Le nombre décimal dépasse la plage autorisée de -536 870 912 à 536 870 911. Ces limites correspondent à la représentation sur 30 bits utilisée par Excel pour les nombres octaux.
Solution : Vérifie que tes valeurs restent dans la plage autorisée. Si des valeurs hors plage sont possibles, protège la formule : =SIERREUR(DECOCT(A1); "Hors plage"). Pour la plupart des usages courants (permissions Unix, codes ASCII), ces limites sont largement suffisantes.
Erreur #NOMBRE! avec un nb_caractères trop petit
=DECOCT(100;2) génère une erreur car 100 en octal est "144" (3 caractères), qui ne peut pas tenir sur 2 caractères. Excel ne tronque pas silencieusement : il retourne une erreur.
Solution : Vérifie que nb_caractères est suffisamment grand, ou omets ce paramètre pour laisser Excel déterminer automatiquement la longueur. La longueur maximale acceptée est de 10 caractères.
Erreur #VALEUR! avec du texte non numérique
DECOCT nécessite une valeur numérique en entrée. Si ta cellule source contient du texte (par exemple "450 euros"), Excel ne peut pas faire la conversion.
Solution : Vérifie le type de tes données avec ESTNUM. Pour convertir du texte numérique en nombre avant la conversion, utilise =DECOCT(CNUM(A1)). Si les données sont incertaines, protège avec =SI(ESTNUM(A1); DECOCT(A1); "Non numérique").
Résultat surprenant pour les nombres négatifs
Les nombres négatifs sont représentés en complément à deux sur 30 bits. =DECOCT(-1) retourne "7777777777" (10 caractères) au lieu d'un signe moins suivi de la valeur.
Solution : Si tu veux une représentation lisible avec signe, utilise : =SI(A1<0; "-"&DECOCT(ABS(A1)); DECOCT(A1)). Cela affiche par exemple -7 au lieu de la représentation en complément à deux.
Questions fréquentes sur la fonction DECOCT
Quelle est la différence entre DECOCT et DEC2OCT ?
Aucune différence fonctionnelle. DEC2OCT est le nom anglais de la fonction, DECOCT est utilisé dans les versions françaises d'Excel. Les deux effectuent exactement la même conversion de décimal vers octal.
Pourquoi le système octal est-il encore utilisé en informatique ?
L'octal reste utilisé principalement pour les permissions de fichiers Unix/Linux (comme chmod 755), dans certains protocoles réseau anciens et pour représenter des groupes de 3 bits de manière compacte. C'est un intermédiaire naturel entre le binaire (difficile à lire) et le décimal.
Comment interpréter les permissions Unix en octal ?
Chaque chiffre octal représente 3 bits de permissions : lecture=4, écriture=2, exécution=1. Par exemple, 755 : propriétaire=7 (4+2+1=tout), groupe=5 (4+1=lecture+exécution), autres=5. Utilise DECOCT pour convertir tes calculs de permissions en notation standard.
DECOCT tronque-t-il les nombres décimaux avec une virgule ?
Oui, automatiquement et silencieusement. =DECOCT(7,9) retourne 7 (octal de l'entier 7), en ignorant le ,9. Pour arrondir au lieu de tronquer, enchaîne avec ARRONDI : =DECOCT(ARRONDI(A1;0)).
Quelle est la plage de valeurs acceptée par DECOCT ?
DECOCT accepte les entiers de -536 870 912 à 536 870 911. Ces limites correspondent à une représentation sur 30 bits. Au-delà, la fonction retourne #NOMBRE!. Pour les permissions Unix et la plupart des usages courants, ces limites ne posent pas de problème.
Pour aller plus loin
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

