Convertisseur de bases numériques
Convertissez entre binaire, octal, décimal et hexadécimal.
À propos de cet outil
Saisissez un nombre en binaire, octal, décimal ou hexadécimal et voyez-le dans toutes les autres bases, avec ses bits regroupés en octets. Gère des entiers de taille arbitraire et reconnaît les préfixes 0x, 0b et 0o.
Mode d’emploi
- Saisissez un nombre dans l’un des quatre champs : binaire, octal, décimal ou hexadécimal.
- Les autres champs se mettent à jour instantanément. Les préfixes comme 0x, 0b et 0o sont acceptés.
- Consultez le panneau des bits pour voir la valeur découpée en octets.
Questions
- Quelle taille de nombre peut-il gérer ?
- N’importe quelle taille. L’outil utilise BigInt de JavaScript : il n’y a donc ni limite à 32 ou 64 bits, ni arrondi.
- Pourquoi les nombres hexadécimaux commencent-ils par 0x ?
- C’est une convention issue du C, désormais utilisée par la plupart des langages, pour indiquer que les chiffres sont hexadécimaux. De même, 0b indique du binaire et 0o de l’octal.
- Où l’octal est-il encore utilisé ?
- Principalement pour les permissions de fichiers Unix, où 755 signifie rwxr-xr-x. Chaque chiffre octal correspond exactement à trois bits de permission.
- Comment convertir de l’hexadécimal en texte ASCII ?
- Cet outil convertit des nombres, pas des chaînes. Dans un texte en hexadécimal, chaque paire de chiffres est un octet, à chercher dans une table ASCII : 48 65 6C 6C 6F donne « Hello ». En ligne de commande, echo 48656c6c6f | xxd -r -p retransforme une chaîne hexadécimale en texte.
- Peut-on convertir des fractions ou des nombres à virgule ?
- Non, uniquement des nombres entiers. Les fractions sont de toute façon délicates en binaire : 0.1 en décimal n’a pas de représentation binaire exacte et se répète à l’infini, c’est pourquoi 0.1 + 0.2 ne vaut pas exactement 0.3 dans la plupart des langages de programmation. Les valeurs à virgule flottante sont stockées au format IEEE 754, et non comme de simples entiers binaires.
- Quel est le plus grand nombre qui tient sur 8, 16, 32 ou 64 bits ?
- En non signé, c’est 2ⁿ − 1 : 255, 65 535, 4 294 967 295 et 18 446 744 073 709 551 615. Les valeurs signées atteignent environ la moitié, par exemple 2 147 483 647 sur 32 bits. Les nombres JavaScript ne sont exacts que jusqu’à 9 007 199 254 740 991 : cet outil utilise donc BigInt pour rester précis au-delà.
Comment convertir du binaire en décimal, et inversement ?
Chaque chiffre d’un nombre binaire vaut une puissance de deux, en commençant par 1 à droite. Pour convertir 1011 en décimal, additionnez les positions qui contiennent un 1 : 8 + 0 + 2 + 1 = 11. L’hexadécimal fonctionne de la même façon avec des puissances de 16 : 0x2F vaut donc 2 × 16 + 15 = 47. L’octal utilise des puissances de huit. Une seule règle couvre toutes les bases : chaque chiffre multiplié par la base élevée à la puissance de sa position.
Pour faire l’inverse, divisez plusieurs fois par la base cible et notez les restes du dernier au premier. Diviser 11 par 2 encore et encore laisse les restes 1, 1, 0 et 1, qui, lus à l’envers, donnent 1011. Avec ce convertisseur de bases, il suffit de saisir une valeur dans n’importe quel champ pour que les trois autres se mettent à jour. Dans du code, JavaScript propose parseInt(text, 2) et n.toString(16), et Python int(text, 2) et hex(n).
Pourquoi les développeurs utilisent-ils l’hexadécimal ?
Un chiffre hexadécimal représente exactement quatre bits : deux chiffres hexadécimaux décrivent donc un octet. L’hexadécimal est ainsi une façon compacte et lisible d’écrire des données binaires : 11111111 s’écrit FF, et n’importe quelle valeur 32 bits tient en huit caractères. On le rencontre dans les adresses mémoire, les codes couleur comme #FF8800, les hachages, les adresses MAC, les points de code Unicode comme U+1F680 et les dumps d’octets affichés par des outils comme xxd et hexdump.
Le panneau des bits montre directement ce lien. La valeur est complétée jusqu’à des octets entiers, et chaque groupe de huit bits est affiché avec sa valeur hexadécimale à deux chiffres en dessous. 48879 devient 10111110 11101111, étiqueté BE et EF, ce qui explique qu’il se lise 0xBEEF. Cela facilite la vérification des flags, des masques de bits et des limites d’octets. Le Calculateur de sous-réseaux applique la même vue binaire aux adresses IPv4 et aux masques de réseau.
Comment fonctionnent les nombres négatifs en binaire : le complément à deux
Les ordinateurs stockent généralement les entiers signés en complément à deux. Pour écrire −1 sur 8 bits, inversez chaque bit de 1 et ajoutez un : 00000001 devient 11111110, plus un donne 11111111, soit 0xFF. Le bit de poids fort sert de signe : une valeur signée sur 8 bits va donc de −128 à 127, tandis que les mêmes bits lus comme non signés vont de 0 à 255. Le motif de bits est identique ; seule l’interprétation change.
Ce convertisseur travaille avec des entiers simples, pas avec des registres de largeur fixe. Saisissez -5 et vous obtenez -101 en binaire et -5 en hexadécimal, avec le signe moins conservé devant au lieu d’un motif en complément à deux. Pour obtenir le motif sur 8 bits d’un nombre négatif, ajoutez d’abord 256 : −5 + 256 = 251, soit 0xFB. Pour 32 bits, ajoutez 4294967296. Les espaces et les underscores sont ignorés : 1111_1011 est donc accepté en entrée.
Tableau décimal, hexadécimal, binaire et octal
Les nombres que vous chercherez le plus souvent, dans les quatre bases.
| Décimal | Hexadécimal | Binaire | Octal |
|---|---|---|---|
0 | 0x0 | 0000 | 0o0 |
1 | 0x1 | 0001 | 0o1 |
2 | 0x2 | 0010 | 0o2 |
3 | 0x3 | 0011 | 0o3 |
4 | 0x4 | 0100 | 0o4 |
5 | 0x5 | 0101 | 0o5 |
6 | 0x6 | 0110 | 0o6 |
7 | 0x7 | 0111 | 0o7 |
8 | 0x8 | 1000 | 0o10 |
9 | 0x9 | 1001 | 0o11 |
10 | 0xA | 1010 | 0o12 |
11 | 0xB | 1011 | 0o13 |
12 | 0xC | 1100 | 0o14 |
13 | 0xD | 1101 | 0o15 |
14 | 0xE | 1110 | 0o16 |
15 | 0xF | 1111 | 0o17 |
16 | 0x10 | 0001 0000 | 0o20 |
32 | 0x20 | 0010 0000 | 0o40 |
64 | 0x40 | 0100 0000 | 0o100 |
100 | 0x64 | 0110 0100 | 0o144 |
127 | 0x7F | 0111 1111 | 0o177 |
128 | 0x80 | 1000 0000 | 0o200 |
255 | 0xFF | 1111 1111 | 0o377 |
256 | 0x100 | 0001 0000 0000 | 0o400 |
512 | 0x200 | 0010 0000 0000 | 0o1000 |
1000 | 0x3E8 | 0011 1110 1000 | 0o1750 |
1024 | 0x400 | 0100 0000 0000 | 0o2000 |
4096 | 0x1000 | 0001 0000 0000 0000 | 0o10000 |
65535 | 0xFFFF | 1111 1111 1111 1111 | 0o177777 |
Quelque chose ne fonctionne pas, ou un résultat semble faux ? Signaler un problème avec cet outil