Blog
Français

Convertir des bases numériques — binaire, octal, décimal et hexadécimal

Conversion en base 2, 8, 10, 16, 36 ou personnalisée avec BigInt, négatifs et préfixes 0x/0b/0o

Traitement dans le navigateur · aucun envoi de fichier

Présentation

Le même nombre s’écrit 11111111 en binaire, ff en hexadécimal et 255 en décimal. Adresses mémoire, codes couleur, masques de bits et droits de fichiers Unix (en octal) vous obligent sans cesse à lire une valeur dans une autre base. Saisissez un nombre ici pour le voir d’un coup en base 2, 8, 10, 16, 36 et dans la base de votre choix.

Mode d’emploi

  1. Saisissez un nombre. Les espaces et _ sont ignorés comme séparateurs de chiffres : 1111_0000 est accepté.
  2. Choisissez la base d’entrée. Par défaut, Auto cherche un préfixe 0x, 0b ou 0o et, à défaut, lit le nombre en décimal.
  3. Copiez la valeur voulue dans le tableau des résultats. La ligne personnalisée accepte n’importe quelle base de 2 à 36.
  4. Activez les chiffres en majuscules si vous préférez FF à ff.

Fonctionnement

  • L’analyse utilise BigInt. Chaque caractère est lu de gauche à droite et accumulé selon valeur = valeur × base + chiffre ; il n’y a donc aucune limite de taille en dehors du plafond de 20 000 caractères en saisie.
  • Les chiffres sont 0-9 puis les lettres a-z (sans distinction de casse), qui valent 0 à 9 puis 10 à 35. C’est pourquoi la base 36 est la plus élevée possible.
  • Un chiffre dont la valeur est égale ou supérieure à la base est signalé avec sa position et les chiffres autorisés dans cette base. Un 2 en binaire ou un 9 en octal est une erreur.
  • Un signe (- ou +) n’est reconnu qu’au tout début, jamais après un préfixe.
  • Le nombre de bits est la longueur de la valeur absolue écrite en binaire ; zéro compte pour un bit.

Exemples

Saisie Base Binaire Hexadécimal Décimal
255 10 11111111 ff 255
0xff Auto 11111111 ff 255
-0b101 Auto -101 -5 -5
18446744073709551617 10 1, soixante-trois 0, puis 1 10000000000000001 18446744073709551617

2^64+1 perd son dernier chiffre en tant que nombre JavaScript ordinaire, mais ici il ressort exactement sous la forme 10000000000000001 en hexadécimal.

À savoir

  • L’octal est la base de chmod 755, l’hexadécimal celle des adresses et des couleurs comme #1e90ff, et la base 36 permet d’écrire des identifiants courts de façon compacte.
  • Si un caractère qui n’est pas un chiffre se glisse dans la saisie, comme une lettre en décimal ou une lettre accentuée, l’erreur indique à quelle position il se trouve.

Questions fréquentes

Les très grands nombres sont-ils convertis exactement ?

Oui. Les nombres JavaScript ordinaires ne sont exacts que jusqu’à 2^53, mais cet outil calcule avec des entiers en précision arbitraire (BigInt) ; les valeurs au-delà de 2^64 sont donc converties sans la moindre erreur de chiffre. La saisie peut atteindre 20 000 caractères.

Comment les nombres négatifs sont-ils affichés ?

Le signe est conservé et la valeur absolue est convertie, si bien que -255 donne -ff en hexadécimal. Ce n’est pas une représentation en complément à deux ; si vous en avez besoin pour une largeur fixe comme 8 bits, interprétez le résultat vous-même.

Puis-je saisir les préfixes 0x ou 0b ?

Avec la base d’entrée sur Auto, les préfixes 0x (hexadécimal), 0b (binaire) et 0o (octal) sont reconnus, et tout nombre sans préfixe est décimal. Si vous choisissez une base vous-même, seul le préfixe correspondant est accepté ; en base 16, le texte 0b1 correspond aux chiffres 0, b et 1, pas à un préfixe.

Et les nombres à virgule ?

Seuls les entiers sont pris en charge. Un séparateur décimal est signalé comme caractère invalide, avec sa position.

Il vous manque un outil ?