Convertisseur de base : décimal, Hex, Base32, Base64
Convertissez des nombres entre décimal et Base16 (hex), Base32 et Base64 dans les deux sens, avec détection automatique de la base et validation des caractères.
Convertisseur de Base Bidirectionnel
Convertir entre des nombres décimaux et des encodages de base standard (Base16/Hex, Base32, Base64). Entrez une valeur dans l'un des champs pour convertir.
Entrez un entier positif (max : 9 007 199 254 740 991)
Entrez une valeur encodée en Base16, Base32 ou Base64
À propos des Encodages de Base
Documentation
Convertisseur bidirectionnel de bases
Un convertisseur de bases modifie la manière dont un nombre est écrit, sans modifier le nombre lui-même. Cet outil convertit un nombre décimal en Base16 (hexadécimal), Base32 ou Base64, et reconvertit une valeur encodée en valeur décimale. Il détecte également lequel des trois encodages est utilisé par une valeur collée.
Qu'est-ce qu'une base numérique
Une base numérique, également appelée radix, est le nombre de symboles différents qu'un système numérique utilise pour représenter un chiffre. Le système décimal est en base 10 et utilise les chiffres 0 à 9. Les ordinateurs stockent souvent les nombres dans d'autres bases, car ces bases représentent la même valeur avec moins de caractères ou parce que leur jeu de caractères peut être transmis sans risque par des systèmes limités au texte, comme un e-mail ou une URL.
Cet outil fonctionne avec trois bases de ce type :
- Base16 (hexadécimal). Utilise les 16 symboles
0–9etA–F. Chaque caractère stocke 4 bits. Cette base est courante pour les codes couleur, les adresses mémoire et les valeurs de hachage. - Base32. Utilise les 32 symboles
A–Zet2–7, définis par la norme Internet RFC 4648. Chaque caractère stocke 5 bits. Elle évite les lettres et les chiffres qui se ressemblent, comme0etO, ce qui facilite la lecture à voix haute ou la saisie manuelle. - Base64. Utilise 64 symboles :
A–Z,a–z,0–9,+et/, également définis par la RFC 4648. Chaque caractère stocke 6 bits. C'est la méthode standard pour intégrer des données binaires dans du texte, par exemple une pièce jointe d'e-mail ou un champ JSON.
Comment convertir un nombre décimal en Base16, Base32 ou Base64
L'outil décompose d'abord le nombre décimal en octets, groupes de 8 bits, écrits dans l'ordre gros-boutiste (l'octet de poids fort en premier). Il lit ensuite ces bits par groupes de la taille correspondant à la base cible : 4 bits à la fois pour la Base16, 5 bits à la fois pour la Base32 ou 6 bits à la fois pour la Base64. Chaque groupe de bits est recherché dans la table des symboles de la base afin de produire un caractère de sortie.
Comme la Base32 et la Base64 lisent les bits par groupes de 5 ou 6, le dernier groupe d'un nombre ne tombe souvent pas sur une frontière d'octet de 8 bits. L'outil complète les bits restants avec des zéros et, pour la Base32 et la Base64, ajoute des caractères = à la fin afin que la longueur de sortie soit toujours un multiple de 8 caractères (Base32) ou de 4 caractères (Base64).
La Base16 utilise toujours un nombre entier de paires de caractères de 2, une paire par octet. Une valeur qui nécessiterait un nombre impair de chiffres hexadécimaux reçoit à la place un zéro en tête, de sorte que la chaîne représente toujours un nombre entier d'octets.
Formule et exemple en Base16
Chaque octet devient exactement deux chiffres hexadécimaux, correspondant à 16 fois le premier chiffre plus le second :
où v est la valeur de l'octet, a le premier chiffre hexadécimal et b le second.
Exemple : 255 en décimal. 255 tient dans un octet. 255 ÷ 16 = 15, reste 15, et 15 s'écrit F ; ainsi, 255 devient FF. C'est pourquoi le code couleur #FFFFFF est blanc : trois octets, chacun ayant sa valeur maximale.
Exemple : 1000 en décimal. 1000 nécessite deux octets : 1000 = 3 × 256 + 232. Le premier octet, 3, devient 03. Le second octet, 232, est égal à 14 × 16 + 8, ce qui donne E8. Lues ensemble, 1000 en Base16 donnent 03E8, et non 3E8 : la sortie hexadécimale est toujours complétée pour former des octets entiers, si bien qu'une valeur inférieure à 16 dans l'octet de poids fort reçoit tout de même un zéro en tête.
Exemples en Base32 et Base64
En utilisant les deux mêmes nombres que ci-dessus :
| Décimal | Base16 | Base32 | Base64 |
|---|---|---|---|
| 255 | FF | 74====== | /w== |
| 1000 | 03E8 | APUA==== | A+g= |
Comment reconvertir une valeur encodée en valeur décimale
Collez une chaîne Base16, Base32 ou Base64 dans le champ encodé, puis sélectionnez cette base dans la liste déroulante située à côté. L'outil vérifie les caractères par rapport à l'alphabet de la base, inverse les étapes ci-dessus et affiche la valeur décimale. Le décodage de FF en Base16 donne 255.
L'outil indique également la base que semble utiliser une valeur collée. Ce nom est donné à titre indicatif uniquement. La liste déroulante détermine toujours la manière dont la valeur est lue, car l'alphabet Base16 fait partie de l'alphabet Base32 et qu'une chaîne courte telle que ABCD est une valeur valide dans les deux bases.
Une entrée Base16 peut mélanger les majuscules et les minuscules ; l'outil traite ff et FF de la même manière. Un nombre impair de chiffres hexadécimaux est interprété selon sa valeur de position, en supposant un zéro en tête : 1F4 et 01F4 donnent donc tous deux 500. Une entrée Base32 doit être saisie en majuscules : le décodeur de l'outil n'accepte pas les lettres Base32 minuscules et signale une erreur s'il en rencontre. En Base64, les lettres majuscules et minuscules sont des symboles différents, comme l'exige le format ; la casse doit donc être saisie exactement comme indiqué.
Certaines chaînes ne peuvent jamais être produites par un encodeur, et l'outil les rejette au lieu de deviner. La RFC 4648 construit la Base64 par groupes de 4 caractères et la Base32 par groupes de 8. En ignorant tout remplissage =, une chaîne Base64 comportant 1 caractère au-delà d'un multiple de 4, ou une chaîne Base32 comportant 1, 3 ou 6 caractères au-delà d'un multiple de 8, ne contient aucun octet complet. Une telle entrée produit une erreur plutôt qu'un nombre.
Limites de l'intervalle
Le plus grand nombre accepté par l'outil est 9,007,199,254,740,991, soit 2^53 − 1. Il s'agit du plus grand entier que le moteur JavaScript d'un navigateur web peut représenter exactement. Au-delà de cette limite, certains entiers ne peuvent plus être stockés avec précision ; l'outil signale donc une erreur au lieu de renvoyer silencieusement un chiffre incorrect. Zéro et tout entier jusqu'à cette limite sont acceptés ; le nombre n'a pas besoin d'être positif, seulement non négatif.
La limite s'applique dans les deux sens. Une chaîne encodée représentant un nombre plus grand, comme la valeur Base16 20000000000000 (qui vaut 2^53), est rejetée au lieu d'être arrondie. Les fractions sont également rejetées : les encodages décrivent des octets entiers, si bien que 1.5 produit une erreur plutôt qu'un résultat arrondi.
Utilisation de chaque encodage
- Base16 apparaît dans les valeurs de couleur CSS et HTML, les adresses MAC et IPv6, ainsi que les valeurs de hachage utilisées pour vérifier qu'un fichier n'a pas été modifié.
- Base32 apparaît dans les clés de configuration de l'authentification à deux facteurs, certains systèmes de partage de fichiers et d'autres identifiants destinés à être lus à voix haute ou saisis manuellement.
- Base64 apparaît dans les URI
data:, les pièces jointes d'e-mail et les jetons web tels que les JWT, partout où des données binaires doivent être transmises par un système conçu pour le texte.
La conversion entre ces encodages ne modifie jamais le nombre sous-jacent. Elle ne change que le nombre de caractères nécessaires pour l'écrire et les systèmes capables de transporter ce texte sans risque.
Foire aux questions
Quelle est la différence entre Base16, Base32 et Base64 ? Ces bases diffèrent par le nombre de symboles que chaque caractère peut représenter : 16, 32 ou 64. Un plus grand nombre de symboles par caractère produit une chaîne encodée plus courte pour un même nombre, au prix d'un alphabet plus grand à lire.
Pourquoi 1000 est-il encodé en 03E8 plutôt qu'en 3E8 en Base16 ?
La sortie hexadécimale est complétée pour former un nombre entier d'octets, à raison de deux chiffres hexadécimaux par octet. 1000 nécessite deux octets ; le résultat comporte donc toujours quatre chiffres hexadécimaux, même si le chiffre en tête est zéro.
La Base32 est-elle insensible à la casse ? L'alphabet Base32 est défini avec des lettres majuscules. Le décodeur de cet outil n'accepte que les entrées Base32 en majuscules ; les lettres minuscules produisent une erreur.
Quel est le plus grand nombre que le convertisseur peut traiter ? 9,007,199,254,740,991, soit 2^53 − 1. Il s'agit de la limite de précision exacte des entiers en JavaScript, le langage dans lequel l'outil s'exécute.
Puis-je convertir un nombre négatif ? Non. L'outil accepte uniquement les entiers supérieurs ou égaux à zéro.
Pourquoi l'outil rejette-t-il certaines chaînes qui ressemblent à des chaînes Base64 valides ? La Base64 est écrite par groupes de 4 caractères ; une valeur dont la longueur dépasse d'un caractère 1 un multiple de 4 ne code aucun octet complet. Aucun encodeur ne peut la produire ; l'outil signale donc une erreur au lieu de renvoyer un nombre.
La conversion d'un nombre entre différentes bases modifie-t-elle sa valeur ?
Non. Elle modifie uniquement sa forme écrite. 255, FF, 74====== et /w== représentent tous le même nombre.