Convertisseur de bases

Convertissez des nombres entiers entre binaire, octal, décimal, hexadécimal et toute base jusqu’à 36, avec complément à deux et codes de texte.

Le formulaire interactif est prêt lorsque JavaScript est activé.

Mode d’emploi

Saisissez un nombre entier et choisissez la base dans laquelle il est écrit, ou laissez Automatique : 0x signifie alors hexadécimal, 0o octal, 0b binaire, et tout le reste décimal. Le résultat affiche le nombre en décimal, binaire, octal et hexadécimal, chacun avec son bouton de copie, et dans une autre base de votre choix entre 2 et 36. Les espaces et les tirets bas entre les chiffres sont ignorés : 1_000_000 fonctionne.

Les bases au-delà de 10 utilisent des lettres après le chiffre 9 : a vaut 10, f vaut 15 et z vaut 35, d’où la base 36 comme maximum. Les nombres de toute longueur sont convertis exactement. Les nombres ordinaires de JavaScript ne sont exacts que jusqu’à 9 007 199 254 740 991 (2⁵³ − 1) ; au-delà, beaucoup de convertisseurs arrondissent les derniers chiffres sans le dire.

Pour les nombres négatifs, le résultat affiche aussi le complément à deux, la façon dont les processeurs stockent les entiers signés, sur 8, 16, 32 ou 64 bits. Un entier signé sur n bits va de −2ⁿ⁻¹ à 2ⁿ⁻¹ − 1 : 8 bits vont donc de −128 à 127 ; un nombre qui ne tient pas est signalé, et un nombre positif qui ne tient que non signé est affiché comme tel. Les chiffres binaires peuvent être groupés par quatre ou par huit pour lire plus facilement les longues valeurs ; le bouton de copie les copie toujours sans espaces.

Le mode texte transforme un texte en octets tels que l’enregistre UTF-8, en binaire, décimal et hexadécimal, avec le point de code Unicode de chaque caractère, et retransforme des codes d’octets en texte. Tout se calcule dans votre navigateur.

Exemple

−5 en complément à deux sur 8 bits s’écrit 11111011, soit FB en hexadécimal : le processeur stocke 256 − 5 = 251.

  • 255Binaire 11111111, octal 377, hexadécimal FF.
  • -5 sur 8 bitsComplément à deux 11111011, 0xFB.
  • 90071992547409932⁵³ + 1, converti exactement : hexadécimal 20000000000001. Un nombre JavaScript ordinaire le changerait en …992.
  • € en mode texteOctets UTF-8 E2 82 AC : trois octets pour un seul caractère, point de code U+20AC.

Questions fréquentes

Pourquoi l’hexadécimal utilise-t-il des lettres ?

La base 16 a besoin de seize chiffres, et de 0 à 9 il n’y en a que dix. Les lettres a à f valent 10 à 15, donc ff vaut 15 × 16 + 15 = 255. Majuscules et minuscules ont le même sens.

Qu’est-ce que le complément à deux ?

La façon habituelle dont les ordinateurs stockent les entiers négatifs : sur n bits, un nombre négatif −x est stocké comme 2ⁿ − x. Sur 8 bits, −1 s’écrit 11111111 et −128 10000000. Le processeur peut ainsi additionner et soustraire de la même manière nombres signés et non signés.

Pourquoi certains convertisseurs se trompent-ils sur les grands nombres ?

Parce qu’ils utilisent les nombres ordinaires de JavaScript, exacts seulement jusqu’à 9 007 199 254 740 991. Cet outil utilise une arithmétique d’entiers de toute taille et garde donc chaque chiffre.

Que signifient 0x, 0o et 0b ?

Ce sont des préfixes utilisés par des langages de programmation comme JavaScript et Python : 0x pour l’hexadécimal, 0o pour l’octal et 0b pour le binaire. En mode Automatique, l’outil les lit ; avec une base choisie, il accepte aussi le préfixe correspondant.

Ce que je saisis est-il envoyé quelque part ?

Non. La conversion se fait dans votre navigateur.

Outils associés