BrowserTools
Publicité
Accueil / Convertisseurs / Convertisseur de bases numériques (binaire, octal, décimal, hex)

Convertisseur de bases numériques (binaire, octal, décimal, hex)

Convertissez des nombres entre binaire, octal, décimal, hexadécimal et toute base personnalisée de 2 à 36.

Chargement de Convertisseur de bases numériques (binaire, octal, décimal, hex)… Si rien ne se passe, activez JavaScript.

Les systèmes de numération positionnels représentent les nombres à l'aide d'un ensemble fixe de symboles de chiffres, où la valeur de chaque chiffre dépend de sa position. Les humains ont naturellement développé l'arithmétique en base 10 (décimale), presque certainement parce que nous avons dix doigts. Mais les ordinateurs numériques sont construits à partir de transistors qui ne peuvent exister que dans deux états, activé ou désactivé, ce qui fait de la base 2 (binaire) le langage naturel du matériel informatique. Chaque nombre, instruction et fragment de texte stocké sur un ordinateur, où que ce soit, est en fin de compte encodé sous la forme d'une séquence de uns et de zéros. Les autres bases, octale (base 8) et hexadécimale (base 16), sont apparues comme une abréviation pratique du binaire : un chiffre octal représente exactement trois chiffres binaires, et un chiffre hex en représente exactement quatre, ce qui les rend bien plus compactes pour qu'un humain lise des données binaires.

Exemples

Entrée 255 (decimal)
Sortie FF (hex) · 11111111 (binary) · 377 (octal)
Entrée 0xFF (hex)
Sortie 255 (decimal)
Entrée 1010 (binary)
Sortie 10 (decimal)

Questions fréquentes

Des données sont-elles envoyées à un serveur lorsque j'utilise cet outil ?
Non. Toutes les conversions de base s'exécutent entièrement au sein de votre navigateur à l'aide de l'arithmétique BigInt de JavaScript. Aucun nombre ni aucune valeur que vous saisissez n'est jamais transmis à un quelconque serveur, ce qui rend l'outil sûr pour les adresses, les jetons ou toute donnée numérique sensible.
Pourquoi les ordinateurs utilisent-ils le binaire plutôt que le décimal ?
Les ordinateurs numériques sont construits à partir de transistors, qui sont des interrupteurs électroniques soit activés (représentant un 1), soit désactivés (représentant un 0). N'utiliser que deux états rend le matériel extrêmement fiable et résistant au bruit : il est beaucoup plus facile de distinguer une tension élevée d'une tension faible que dix niveaux de tension différents. Le binaire est le système de numération positionnel le plus simple possible, et il correspond parfaitement à la réalité physique du fonctionnement des circuits numériques.
Pourquoi l'hexadécimal est-il utilisé pour les codes de couleur et les adresses mémoire ?
Chaque octet de données contient 8 bits et peut représenter 256 valeurs (0–255). Deux chiffres hexadécimaux peuvent représenter exactement ces mêmes 256 valeurs (00–FF), ce qui fait du hex un moyen compact et sans perte d'exprimer des octets. Une couleur RGB de 24 bits fait trois octets, elle tient donc parfaitement dans six chiffres hex. Une adresse mémoire de 64 bits fait huit octets, soit seize chiffres hex. Les représentations binaires des mêmes valeurs seraient quatre fois plus longues et bien plus difficiles à lire pour un humain.
Quel rapport les nombres octaux ont-ils avec les permissions de fichier Unix ?
Les permissions de fichier Unix se composent de trois groupes de trois bits chacun, propriétaire, groupe et autres, où chaque bit contrôle l'accès en lecture, écriture ou exécution. Trois bits peuvent représenter des valeurs de 0 à 7, ce qui correspond parfaitement à un seul chiffre octal. Ainsi, chmod 755 signifie que le propriétaire a 7 (rwx = 111 en binaire), le groupe a 5 (r-x = 101) et les autres ont 5. L'octal a été choisi parce qu'il convenait naturellement aux regroupements de 3 bits des permissions Unix.
Puis-je convertir de très grands nombres sans perte de précision ?
Oui. Cet outil utilise BigInt de JavaScript, qui gère les entiers de taille arbitraire avec une précision exacte. Les nombres standard de JavaScript (doubles IEEE-754) ne peuvent représenter de façon exacte que les entiers jusqu'à 2^53 - 1 (9 007 199 254 740 991). BigInt n'a pas cette limite, vous pouvez donc convertir en toute sécurité des clés cryptographiques de 256 bits, de grandes valeurs de hachage ou tout autre grand entier sans aucun arrondi.
Quelle est l'histoire de la notation hexadécimale en informatique ?
La notation hexadécimale en informatique a été popularisée par IBM dans les années 1960 avec l'introduction de l'architecture IBM System/360, qui utilisait des octets de 8 bits. Avant le System/360, certaines machines utilisaient des caractères de 6 bits et l'octal était en réalité plus courant. Une fois que les octets de 8 bits sont devenus la norme universelle, parfaitement divisibles en deux quartets de 4 bits, l'hexadécimal est devenu l'abréviation naturelle. Le préfixe 0x pour les littéraux hex a été introduit par le langage de programmation C au début des années 1970 et a été adopté par presque tous les langages depuis.
Existe-t-il des cas limites avec les zéros de tête ou les très petits nombres ?
Dans les systèmes de numération positionnels, les zéros de tête ne changent pas la valeur d'un nombre : 007 en décimal vaut toujours 7. Cependant, dans certains contextes de programmation, un zéro de tête a une signification précise : en C, Python 2 et JavaScript, un littéral numérique commençant par 0 suivi des chiffres 0–7 est interprété comme un nombre octal, et non décimal. Par exemple, 010 en C signifie 8, et non 10. C'est une source courante de bogues, et c'est pourquoi Python moderne exige le préfixe explicite 0o pour les littéraux octaux.
Cet outil prend-il en charge le complément à deux pour les nombres négatifs ?
L'outil affiche les nombres négatifs avec un préfixe de signe moins, mais ne calcule pas les représentations en complément à deux. Le complément à deux dépend de la taille de mot : la même valeur -1 est représentée par 0xFF sur 8 bits, 0xFFFF sur 16 bits et 0xFFFFFFFF sur 32 bits. Comme la taille de mot visée dépend du contexte, vous devriez appliquer vous-même le masque de bits approprié après avoir obtenu la représentation positive avec cet outil.
Quelles conversions de base vaut-il la peine de connaître par cœur ?
Quelques-unes sont inestimables : 0xFF = 255 (valeur maximale d'un seul octet), 0x80 = 128 (point médian d'un octet), 0x10 = 16 décimal, 0x100 = 256. En binaire, 1111 = 15 = 0xF, et savoir que chaque chiffre hex équivaut exactement à quatre chiffres binaires (quartet) est le raccourci le plus utile pour lire les vidages hex et les adresses mémoire.
Quelle est une idée fausse fréquente des débutants au sujet des nombres binaires ?
Une idée fausse très répandue est que les nombres binaires seraient en quelque sorte des versions « moins précises » ou « approximatives » des nombres décimaux. En réalité, pour les entiers, la conversion entre bases est toujours exacte : 10 en décimal vaut toujours exactement 1010 en binaire, sans le moindre arrondi. Le problème de précision n'apparaît qu'avec les nombres fractionnaires (0.1 en décimal ne peut pas être représenté de façon exacte en binaire), ce qui est à l'origine des fameuses erreurs d'arrondi en virgule flottante en JavaScript comme 0.1 + 0.2 === 0.30000000000000004.

À propos de Convertisseur de bases numériques (binaire, octal, décimal, hex)

Les développeurs rencontrent constamment plusieurs bases. L'hexadécimal est omniprésent : les couleurs CSS (#ff6600), les adresses mémoire dans les débogueurs (0x7ffee4b3c8d0), les nombres magiques des formats de fichier (0xFF 0xD8 pour JPEG), les permissions de fichier Unix sous forme numérique (0755) et les adresses MAC réseau utilisent toutes la notation hex. Le binaire est essentiel pour comprendre les opérations au niveau des bits, les champs d'indicateurs, les masques de sous-réseau et l'encodage des données. L'octal apparaît dans les chaînes de mode des permissions de fichier Unix, le familier chmod 755 ou chmod 644, et dans certains protocoles de communication hérités. La base 36 (qui utilise les chiffres 0–9 et les lettres A–Z) est employée dans les raccourcisseurs d'URL et les schémas d'identifiants uniques qui ont besoin de chaînes compactes et insensibles à la casse.

Ce convertisseur accepte une valeur dans n'importe quelle base de 2 à 36 et l'affiche simultanément en binaire, octal, décimal, hexadécimal et toute base personnalisée que vous spécifiez. Le calcul utilise le type BigInt de JavaScript, qui prend en charge les entiers de précision arbitraire, il n'y a donc aucune limite supérieure à la taille du nombre que vous pouvez convertir, contrairement au type Number standard qui perd en précision au-delà de 2^53. Tout le traitement s'exécute dans votre navigateur, sans aucune communication avec un serveur.

Quelques nuances à garder à l'esprit : les chiffres hexadécimaux utilisent les lettres A–F (ou a–f) pour les valeurs 10–15, et la casse n'a pas de signification sémantique, mais les conventions diffèrent : les registres du processeur sont traditionnellement affichés en majuscules, tandis que les couleurs CSS s'écrivent couramment en minuscules. Lors de la saisie de valeurs binaires, faites attention aux zéros de tête : ils sont valides et conservés à l'affichage, mais n'affectent pas la valeur numérique. La notation en complément à deux, utilisée pour représenter les entiers négatifs dans le matériel, n'est pas produite par cet outil car sa sortie dépend de la taille de mot (8 bits, 16 bits, 32 bits, 64 bits) du système cible.

Des doigts aux transistors : pourquoi le monde compte en base 16

Les humains ont presque certainement utilisé la base 10 pendant des milliers d'années simplement parce que nous sommes nés avec dix doigts. Les preuves archéologiques suggèrent des systèmes de comptage remontant à au moins 40 000 ans, et les Babyloniens ont développé un système sophistiqué en base 60 (sexagésimale) vers 2000 av. J.-C., un choix qui résonne encore dans nos minutes de 60 secondes et nos cercles de 360 degrés. Le système décimal que nous utilisons aujourd'hui a été formalisé en Inde vers les Ve–VIe siècles de notre ère avec l'invention de la notation positionnelle et le concept du zéro, puis transmis à l'Europe par les mathématiciens arabes, nous donnant les chiffres indo-arabes que nous utilisons aujourd'hui.

L'adoption du binaire en informatique n'était pas inévitable. La machine analytique mécanique du XIXe siècle de Charles Babbage utilisait le décimal. Les propositions informatiques du début du XXe siècle ont exploré la base 3 (ternaire) et même des systèmes électroniques en base 10. Des ingénieurs soviétiques de l'université d'État de Moscou ont même construit un ordinateur ternaire fonctionnel, le Setun, en 1958, en faisant valoir qu'il était plus efficace que le binaire. Mais le binaire l'a finalement emporté parce qu'il exigeait le moins de complexité d'ingénierie : un transistor est soit activé, soit désactivé, un point c'est tout. Tout état supplémentaire suppose un calibrage de tension plus minutieux, plus de chaleur et plus d'erreurs.

L'hexadécimal est devenu la représentation dominante lisible par l'humain des données binaires grâce au System/360 d'IBM en 1964, qui a normalisé l'octet de 8 bits comme unité fondamentale d'information. Une fois les octets universels, le fait que deux chiffres hex correspondent exactement à un octet était irrésistible pour les ingénieurs qui lisaient les vidages mémoire et les valeurs de registres. Le préfixe 0x pour marquer les littéraux hex a été introduit par le langage C vers 1972 et s'est répandu dans pratiquement tous les langages grand public qui ont suivi : C++, Java, Python, JavaScript, Go, Rust, Swift et d'autres. Aujourd'hui, le hex est si ancré dans la culture informatique que les concepteurs de couleurs, les ingénieurs réseau et les chercheurs en sécurité pensent et communiquent en base 16 comme une seconde nature.

Publicité
Publicité
Publicité