Aller au contenu
Quaestio

Bases numériques

Saisissez le nombre dans la base dont vous partez, et il apparaît d’un coup dans tous les systèmes courants.

Le même nombre dans d’autres bases

  • Binaire11111111
  • Octal377
  • Décimal255
  • Hexadécimalff
  • Base personnalisée 3673
2–36
Intégrer

Intégrer cet outil à votre site

Copiez le code et collez-le là où l’outil doit apparaître, par exemple dans un article de blog ou sur une page d’école. C’est gratuit, le cadre ne contient pas de publicité et l’outil calcule dans le navigateur du visiteur.

Comment ça marche

Une base dit combien de chiffres on emploie avant de passer à la position suivante. Nous comptons d’ordinaire en base 10 avec les chiffres de 0 à 9, alors que les ordinateurs travaillent en base 2 avec seulement 0 et 1.

L’hexadécimal, base 16, sert à raccourcir les nombres binaires. Quatre chiffres binaires correspondent exactement à un chiffre hexadécimal, si bien qu’un octet s’écrit toujours avec deux caractères, par exemple ff pour 255.

Les chiffres au-delà de neuf s’écrivent avec des lettres : a vaut 10, b vaut 11 et ainsi de suite jusqu’à z, qui en base 36 vaut 35.

L’outil calcule avec des entiers de toute taille : même les valeurs hexadécimales longues gardent chaque chiffre.

Comment l’outil calcule

Le nombre est lu chiffre par chiffre depuis la gauche : la valeur obtenue jusque-là est multipliée par la base, puis le chiffre suivant est ajouté. 7ea en base 16 devient 7, puis 7 × 16 + 14 = 126, et enfin 126 × 16 + 10 = 2 026. Dans l’autre sens, le nombre est écrit par la conversion intégrée du navigateur, qui emploie les caractères 0–9 et a–z, n’écrit jamais de zéros en tête et place un signe moins devant les nombres négatifs.

2 026 s’écrit 11111101010 en binaire, 3752 en octal et 1ka en base 36. La base 36 est la plus haute, parce que dix chiffres et vingt-six lettres font 36 caractères. Outre les quatre bases courantes, la liste montre une base personnalisée, 36 au départ, et le bouton de chaque ligne copie le nombre dans cette base.

Ce que le champ accepte

Majuscules et minuscules ont le même sens, et les espaces et tirets bas entre les chiffres sont retirés : 1111_0000 en base 2 vaut 240. Les préfixes comme 0x et 0b ne sont pas compris. En base 16, 0x1f est refusé, mais en base 36, x est un chiffre, et le même texte se lit alors comme le nombre 42 819. Les zéros en tête disparaissent : 00ff s’écrit ff.

Seuls les entiers se convertissent : une virgule ou un point décimal donne un message d’erreur. Les nombres négatifs gardent leur signe : −ff vaut −255, soit −11111111 en binaire. Tapez ce signe avec le trait d’union du clavier, car le signe moins typographique n’est pas reconnu. L’outil ne montre donc pas comment un ordinateur stocke un nombre négatif sur un nombre fixe de bits.

Contexte

La RFC 4648 appelle la base 16 l’encodage hexadécimal standard et précise qu’il ne distingue pas majuscules et minuscules. L’alphabet de la norme emploie les capitales A–F, alors que JavaScript écrit en minuscules ; les deux désignent le même nombre.

Les nombres ordinaires du navigateur ne représentent exactement tous les entiers que jusqu’à 2⁵³ − 1 = 9 007 199 254 740 991. L’outil calcule donc avec le type entier BigInt, qui n’a pas cette limite. 2⁶⁴ = 18 446 744 073 709 551 616 sort alors exactement comme 10000000000000000 en hexadécimal, un 1 suivi de seize zéros.

Sources

Comment les outils sont vérifiés