Comment fonctionne la conversion de bases
Tout système de numération positionnel représente une valeur comme la somme de chiffres multipliés par des puissances de la base. Changer de base consiste à réécrire la même valeur selon une série de puissances différente.
- Valider l'alphabet de saisie. Chaque base accepte un ensemble de chiffres spécifique. Le binaire accepte 0 et 1 ; l'octal accepte 0 à 7 ; le décimal accepte 0 à 9 ; l'hex accepte 0 à 9 et A à F. Un caractère hors de l'alphabet choisi provoque une erreur en ligne avant toute conversion.
- Analyser la valeur. Pour les valeurs tenant dans un Number JavaScript (jusqu'à 2^53-1), l'outil appelle
parseInt(text, base). Au-delà, il bascule surBigIntafin que la conversion reste exacte pour les entiers arbitrairement grands. - Restituer dans chaque base cible. La valeur analysée est convertie vers chaque base de sortie via
Number.prototype.toString(base)ouBigInt.prototype.toString(base). Les quatre volets standard (binaire, octal, décimal, hex) et le volet base personnalisée se mettent à jour ensemble. - Appliquer la mise en forme. Un bouton de préfixe ajoute 0b, 0o ou 0x devant les sorties binaire, octal et hex. Le groupement des chiffres insère un tiret bas tous les quatre chiffres binaires et tous les deux chiffres hex. Un interrupteur de casse hex sélectionne les lettres majuscules ou minuscules pour A-F.
- Synchronisation en direct entre volets. La modification d'un volet déclenche une reconversion avec un anti-rebond de 100 ms qui met à jour les autres volets. Le volet en cours de saisie est traité comme la source de vérité à chaque frappe.
Pourquoi utiliser un convertisseur de bases
- Lecture de vidages mémoire. Les débogueurs, désassembleurs et outils de vidage de cœur affichent les adresses et valeurs de registres en hex. Les traduire en décimal permet de les comparer aux compteurs, tailles et décalages rapportés ailleurs dans la même trace.
- Travail avec les codes couleur. CSS, les outils de design et les formats d'image expriment les couleurs en triplets hex comme #d2511a. Convertir chaque paire en décimal donne la même couleur sous la forme rgb(210, 81, 26) attendue par votre sélecteur de couleur ou vérificateur d'accessibilité.
- Décodage des permissions de fichiers. Les valeurs chmod Unix sont écrites en octal : 755 signifie rwxr-xr-x une fois chaque chiffre octal traduit en ses trois bits binaires. Le convertisseur montre ce mappage en une étape pour vérifier un ensemble de permissions sans consulter une page de manuel.
- Débogage des drapeaux de bits. Les protocoles réseau, les appels système du noyau et les registres matériels regroupent de nombreux indicateurs booléens dans un seul entier. Lire l'entier en binaire montre d'un coup d'œil quels bits sont actifs, ce dont vous avez besoin pour diagnostiquer pourquoi un indicateur ne prend pas effet.
Applications courantes
La conversion de bases intervient au quotidien dans le travail des développeurs, des experts en sécurité et en matériel dès qu'un nombre représente autre chose qu'un simple compteur.
- Firmware embarqué : lisez un vidage hex depuis une sonde JTAG, trouvez l'adresse d'une fonction et rédigez une commande de point d'arrêt en utilisant le décalage décimal accepté par votre script de débogage.
- Sécurité réseau : analysez un masque de sous-réseau 32 bits affiché en décimal pointé en le convertissant en binaire pour compter la longueur du préfixe, puis rédigez la forme CIDR pour une règle ACL.
- CTF et défis crypto : basculez entre hex, décimal et binaire en comparant un fragment de clé divulgué à un texte clair candidat sous XOR.
Un exemple concret
Saisissez 255 dans le volet décimal. Le volet hex se met à jour en FF (ou 0xFF avec le préfixe activé), le volet binaire en 11111111 (groupé en 1111_1111), et le volet octal en 377. Passez le radix du volet personnalisé à 36 et la même valeur s'affiche en 73. Saisissez une valeur beaucoup plus grande comme 123456789012345678901234567890 dans le volet décimal ; le volet hex utilise BigInt et affiche 18EE90FF6C373E0EE4E3F0AD2.
FAQ
Qu'est-ce qu'une base numérique ?
Une base numérique, ou radix, est le nombre de chiffres distincts qu'un système positionnel utilise avant de reporter au rang supérieur. Le décimal (base 10) utilise 0 à 9 ; le binaire (base 2) utilise seulement 0 et 1 ; l'hexadécimal (base 16) utilise 0 à 9 plus A à F. La valeur d'un nombre ne change pas lorsqu'on change de base — seule la façon dont ses chiffres sont écrits et groupés change.
Pourquoi utiliser l'hexadécimal en programmation ?
Un chiffre hex correspond exactement à quatre bits binaires, donc deux chiffres hex couvrent un octet et huit chiffres hex couvrent un mot de 32 bits. L'hex est ainsi la forme la plus compacte lisible par un humain pour les adresses mémoire, les contenus de registres, les triplets couleur et les clés cryptographiques. Lire 0xFF est plus rapide que lire 11111111, et le motif de bits est là si vous en avez besoin.
Puis-je convertir au-delà de la base 36 ?
Cet outil s'arrête à la base 36 car c'est la limite supérieure des API JavaScript natives parseInt et toString, qui acceptent 0 à 9 suivi de A à Z comme alphabet de chiffres. Les bases 37 à 62 sont possibles avec un alphabet personnalisé (Base58 utilisé dans les adresses Bitcoin en est un exemple) mais elles relèvent d'un outil séparé car chaque base supérieure nécessite son propre ordre canonique de chiffres.
Cet outil gère-t-il les nombres négatifs et les flottants ?
Les entiers négatifs sont rendus avec un signe moins en tête dans chaque base, le même comportement que celui fourni par Number.prototype.toString. La représentation en complément à deux sur une largeur de bits choisie (8, 16, 32, 64) est une vue séparée que nous prévoyons d'ajouter. La conversion de base en virgule flottante est également hors périmètre pour cette version ; l'outil traite uniquement les entiers.
La conversion de bases est une petite tâche qui revient sans cesse dans le travail sur le firmware, la sécurité et le graphisme. La réaliser dans un onglet de navigateur, avec les mêmes primitives arithmétiques que Node et V8, maintient le travail rapide et les données sur votre machine.