MiServe DevTools

Vos autocollants

Épinglez vos outils ici. Ils sont enregistrés dans ce navigateur.

Convertisseur de bases numériques

Convertissez un entier de n'importe quelle taille entre binaire, octal, décimal, hexadécimal et toute base de 2 à 36, avec ses formes en complément à deux.

Longueur en bits de la valeur absolue
Bits nécessaires en entier signé (complément à deux)
En entier de largeur fixe (complément à deux)
LargeurHexBinaireLu comme signéLu comme non signé
8 bits
16 bits
32 bits
64 bits

S'exécute dans votre navigateur. Rien de ce que vous collez n'est envoyé.

À propos de cet outil

Le même nombre dans différentes bases

Une base (radix en anglais) est le nombre de chiffres distincts qu'utilise une numération de position. Le décimal en a dix, le binaire deux, l'octal huit et l'hexadécimal seize, en empruntant a à f pour les valeurs de dix à quinze. Les bases jusqu'à 36 continuent dans l'alphabet jusqu'à z.

Le binaire est la façon dont le matériel stocke les nombres. L'hexadécimal en est l'écriture compacte, puisqu'un chiffre hexadécimal vaut exactement quatre bits et deux chiffres un octet. L'octal sert encore pour les permissions de fichiers Unix, où chaque chiffre représente trois bits.

Chaque champ de cette page affiche le même entier. Modifiez-en un et les autres suivent.

Ce que vous pouvez saisir

Les chiffres peuvent être séparés par des espaces ou des tirets bas, comme dans 1111_0000 ou 1 000 000, et le nombre peut commencer par un signe moins. Les préfixes 0b, 0o et 0x sélectionnent le binaire, l'octal et l'hexadécimal partout où la lettre n'est pas elle-même un chiffre du champ : 0xff saisi dans le champ décimal est lu comme 255, tandis que 0b1 dans le champ hexadécimal est le nombre hexadécimal B1.

La conversion utilise le type BigInt de JavaScript, un entier en précision arbitraire : rien n'est donc arrondi. La seule limite de taille est celle que le moteur JavaScript du navigateur impose à un BigInt, et un nombre qui la dépasse est signalé dans son champ. Les nombres supérieurs à 9 007 199 254 740 991, au-delà duquel les nombres JavaScript ordinaires commencent à perdre en précision, sont convertis exactement. Seuls les entiers sont pris en charge, pas les fractions.

Nombres négatifs et complément à deux

Les champs affichent un nombre négatif sous la forme d'un signe moins suivi de sa valeur absolue. Les ordinateurs le stockent autrement : en complément à deux, une valeur négative est stockée comme cette valeur plus deux à la puissance de la largeur. Sur 8 bits, cette puissance vaut 256 : -1 est donc stocké comme 255, soit ff, et -128 comme 128, soit 80.

Le tableau montre le motif binaire sur 8, 16, 32 et 64 bits chaque fois que la valeur y tient, ainsi que ce que ce motif signifie une fois relu comme entier signé et comme entier non signé. C'est pourquoi 255 et -1 partagent le motif ff sur 8 bits.

Questions

Comment convertir du binaire en décimal à la main ?

Chaque chiffre binaire vaut une puissance de deux, en partant de 1 à droite. Additionnez les puissances là où le chiffre vaut 1 : 1011 donne 8 + 2 + 1, soit 11.

Pourquoi l'hexadécimal est-il si souvent utilisé en programmation ?

Un chiffre hexadécimal représente exactement quatre bits : un octet s'écrit donc toujours avec deux chiffres hexadécimaux. Les dumps mémoire, les couleurs, les hachages et les masques de bits sont ainsi bien plus courts qu'en binaire, tout en restant faciles à ramener aux bits.

Quelle taille de nombre ce convertisseur peut-il gérer ?

L'outil n'impose aucune limite propre. Il utilise des entiers en précision arbitraire : des nombres de plusieurs milliers de chiffres sont donc convertis exactement. Les entrées très longues demandent plus de temps de calcul, et le moteur JavaScript de chaque navigateur fixe une taille maximale pour un entier. Un nombre qui la dépasse est signalé dans son champ.

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

C'est la façon dont presque tous les ordinateurs stockent les entiers signés. Le bit de poids fort a un poids négatif : une valeur sur 8 bits va donc de -128 à 127, et -1 est stocké sous la forme de huit bits à 1.

Autres outils de la catégorie Encodage