ToolActToolAct

Outil de Conversion de Base

Convertissez instantanément entre binaire, octal, décimal, hexadécimal et bases personnalisées

Entrée
Résultats de conversion
Binaire (2)
Octal (8)
Décimal (10)
Hexadécimal (16)

Base d'entrée

Qu'est-ce que la conversion de base numérique ?

La conversion de base numérique est le processus de changement d'un nombre d'un système numérique à un autre. Les bases courantes comprennent le binaire (base 2), l'octal (base 8), le décimal (base 10) et l'hexadécimal (base 16).

En informatique, le binaire est le système numérique le plus fondamental car toutes les données dans un ordinateur sont stockées en binaire. L'hexadécimal est largement utilisé pour les adresses mémoire et les valeurs de couleur car il est plus compact et lisible que le binaire.

Un convertisseur de base est utile lorsque des valeurs doivent être lues ou comparées en décimal, binaire, octal, hexadécimal ou autres systèmes. Les cas courants sont programmation, masques de bits, adresses mémoire, couleurs, protocoles, enseignement et embarqué. Les points d’attention sont signe, préfixes comme 0x, zéros initiaux, groupement et taille maximale d’entier du système cible. Une conversion mathématiquement correcte peut différer de la représentation d’un langage pour les valeurs signées ou en dépassement.

Utilisation

Mode d'emploi

  1. Saisissez le nombre à convertir dans le champ prévu (par ex. 255, FF, 11111111).
  2. Sélectionnez la base du nombre saisi : binaire, octal, décimal, hexadécimal ou une base personnalisée.
  3. L'outil affiche automatiquement les conversions en binaire, octal, décimal et hexadécimal.
  4. Cliquez sur le bouton « Copier » à côté du résultat voulu pour le placer dans le presse-papiers.

Astuces de conversion

  • Vérifiez que les chiffres saisis sont valides pour la base choisie : le binaire n'accepte que 0 et 1, tandis que l'hexadécimal accepte 0-9 et A-F.
  • Les grands entiers peuvent dépasser la plage de nombres sûrs de JavaScript : vérifiez les valeurs d'ingénierie critiques avec un outil dédié de précision arbitraire.

Cas d’utilisation

Inspecter un entier dans plusieurs bases de programmeurChoisissez binaire, octal, décimal, hexadécimal ou une base personnalisée de 2 à 36, puis visualisez la même valeur en base 2, 8, 10 et 16 simultanément. Chaque sortie peut être copiée indépendamment pour collage dans du code source, des extraits de documentation, des tables de registres ou des commentaires de revue où le même nombre est souvent affiché côte à côte dans deux bases.
Traduire des valeurs issues de logs, registres et notes de protocoleUtilisez-le pour les masques de permission, registres de périphériques, petits identifiants numériques, valeurs de type couleur, drapeaux de bits et exemples copiés depuis la documentation où le même nombre est plus facile à interpréter dans une autre base. La conversion s’exécute entièrement dans la page, les adresses de registres internes, valeurs d’opcode ou extraits de spécification peuvent être vérifiés sans les transmettre via un service externe.
Rester dans les limites de conversion d’entiersLa page utilise parseInt et Number.toString de JavaScript, elle convient donc à la notation entière non signée ordinaire. Les très grands entiers, valeurs fractionnaires, formes binaires négatives et l’interprétation en complément à deux nécessitent encore un calculateur spécialisé du domaine.
Décoder une combinaison de drapeaux bit à bitConvertissez un masque de permission ou une valeur de registre en binaire, puis regroupez par 4 ou 8 bits pour lire les drapeaux individuels comme 0x1F0 ou 0b1010_0001. Utile lors de la documentation des bits de permission POSIX, des registres GPIO ou des drapeaux de fonctionnalités où chaque bit a un nom que l’entier seul masque. La règle de groupement repose sur la relation 2^4 = 16 entre binaire et hexadécimal : chaque groupe de 4 bits correspond toujours à un chiffre hexadécimal et chaque groupe de 3 bits à un chiffre octal ; le remplissage par des zéros initiaux permet à un octet de 8 bits (0xFF) de s’aligner proprement sur deux chiffres hexadécimaux.
Travailler explicitement avec le complément à deux et les largeurs signéesLorsque la valeur source est un int8, int16 ou int32 signé, n’oubliez pas que la page renvoie la représentation non signée. Convertissez manuellement avec une formule adaptée à la largeur lorsque vous interprétez des valeurs négatives issues de dumps de protocole, de champs de structures ou de logs de firmware embarqué. En complément à deux, une valeur sur w bits `v` dont le bit de poids fort est à 1 représente `v - 2^w`, ainsi l’octet 8 bits `0xFF` vaut 255 non signé mais -1 signé, et le mot 16 bits `0x8000` vaut -32768. Le remplissage par des zéros initiaux est significatif pour les champs à largeur fixe comme les adresses MAC, les hextets IPv6 ou les canaux couleur 24 bits, et la conversion fractionnaire de base (par exemple le décimal `0,625` en binaire `0,101`) n’est pas prise en charge par parseInt/toString et nécessite un algorithme séparé.

Principe technique

La conversion de base est l'arithmétique en notation positionnelle. Un chiffre d à la position p en base b contribue d × bᵖ à la valeur totale, et la valeur d'un nombre à N chiffres est Σᵢ₌₀..N₋₁ dᵢ × b^(N-1-i). Le système décimal est en base 10, le binaire en base 2, l'octal en base 8, l'hexadécimal en base 16. Deux algorithmes font tout le travail : pour convertir de la base b₁ à la base 10, on évalue le polynôme (la méthode de Horner est la forme standard en place : `value = value * b₁ + digit`) ; pour convertir de la base 10 à la base b₂, on divise successivement par b₂ et on collecte les restes, puis on les inverse. Les deux algorithmes sont en O(N) par chiffre et en O(1) en espace supplémentaire, et fonctionnent pour toute base de 2 à 36 (chiffres '0'-'9' + 'A'-'Z' comme 10-35). La plupart des conversions de base en pratique ignorent l'étape décimale intermédiaire et passent directement entre des bases qui sont des puissances de deux. Binaire ↔ octal regroupe 3 chiffres binaires par chiffre octal (car 2³ = 8), et binaire ↔ hexadécimal regroupe 4 chiffres binaires par chiffre hexadécimal (2⁴ = 16). C'est pourquoi 0xFF = 11111111₂, 0755 (octal, le mode de fichier Unix) = 111101101₂ = 493 en décimal. La page gère aussi la base 32 (RFC 4648 §6, utilisée dans certains jetons d'authentification) et la base 36 (l'alphabet traditionnel compact de raccourcissement d'URL « 0 »-« 9 » + « A »-« Z »), où la conversion via le binaire est la seule approche sensée puisque 36 n'est pas une puissance de 2. Cette page utilise les fonctions natives de JavaScript : parseInt(value, base) pour l'analyse et (123).toString(base) pour la sortie. Toutes deux sont limitées par la précision de Number : un IEEE 754 binaire64 a une mantisse de 53 bits, donc les valeurs entières supérieures à 2⁵³ - 1 = 9 007 199 254 740 991 perdent en précision. Par exemple, Number.MAX_SAFE_INTEGER + 1 est égal à Number.MAX_SAFE_INTEGER + 2 — ces deux grandes valeurs ne sont pas représentables. Pour la conversion de base d'entiers à précision arbitraire, BigInt est la voie moderne : la logique de type parseInt en BigInt est simple, et BigInt.prototype.toString(base) gère toute base de 2 à 36. Les bibliothèques cryptographiques, les générateurs d'UUID et les calculs sur les grands nombres (portefeuilles HD BIP-32, clés RSA) utilisent tous BigInt pour cette raison. Le même algorithme gère aussi les nombres signés et à virgule flottante, avec des réserves. En complément à deux (la représentation signée dominante pour les entiers à largeur fixe, depuis la conception de l'IBM System/360 en 1965 jusqu'à tous les processeurs modernes), -1 est composé uniquement de uns (0xFFFFFFFF pour 32 bits, 0xFFFFFFFFFFFFFFFF pour 64), et le bit le plus élevé est le bit de signe. Pour convertir un entier négatif en complément à deux en décimal, on soustrait 2ⁿ (où n est la largeur en bits). Pour les nombres à virgule flottante, l'IEEE 754 binaire64 stocke le signe (1 bit), l'exposant (11 bits, avec un biais de 1023) et la mantisse (52 bits, avec un 1 implicite en tête). La conversion décimale d'un binaire64 arbitraire n'est donc pas exacte — 0,1 en IEEE 754 est 0,1000000000000000055511151231257827021181583404541015625, ce qui explique pourquoi le code financier utilise des centimes entiers ou des bibliothèques décimales plutôt que les flottants.

  • Notation positionnelle : un chiffre d à la position p en base b contribue d × bᵖ. La valeur complète d'un nombre à N chiffres est Σᵢ dᵢ × b^(N-1-i). La méthode de Horner évalue ceci en O(N) en temps et O(1) en espace : `value = value * b + digit`.
  • Pour convertir du décimal à la base b, on divise successivement par b et on collecte les restes ; les lire en ordre inverse donne la représentation cible. L'algorithme est en O(N) pour une sortie à N chiffres.
  • Conversion directe binaire ↔ hexadécimal : chaque chiffre hexadécimal correspond exactement à 4 chiffres binaires, donc 0xFF = 11111111₂. Binaire ↔ octal : chaque chiffre octal correspond à 3 chiffres binaires, donc 0755 = 111101101₂.
  • Complément à deux (utilisé par tous les processeurs modernes pour les entiers signés) : le bit de poids fort est le signe, et les nombres négatifs sont codés comme 2ⁿ - |x|. -1 en complément à deux sur 32 bits est 0xFFFFFFFF.
  • IEEE 754 binaire64 (Number en JavaScript) : 1 bit de signe + exposant biaisé sur 11 bits (biais 1023) + mantisse sur 52 bits avec un 1 implicite en tête. L'entier sûr maximum est 2⁵³ - 1 = 9 007 199 254 740 991 ; au-delà, la précision se perd.
  • parseInt(value, base) et Number.prototype.toString(base) fonctionnent pour les bases 2-36 et utilisent la mantisse de 53 bits de Number. Pour une précision arbitraire, utilisez BigInt('value', base) et BigInt.prototype.toString(base).
  • La base 32 (RFC 4648 §6) et la base 36 ('0'-'9' + 'A'-'Z') nécessitent le binaire comme étape intermédiaire car 32 et 36 ne sont pas des puissances de 2 — un chiffre ne correspond pas à un nombre fixe de bits.
  • Cas limite : la division entière avec reste pour les bases négatives ou les nombres négatifs en complément à deux nécessite une gestion du signe ; la page traite l'entrée comme une valeur absolue non signée et réapplique le signe au résultat final.

Exemples

Décimal vers hexadécimal

Entrée : 255 (décimal)
Sortie : FF (hexadécimal)
Note :  couramment utilisé dans les valeurs de couleur CSS, par ex. #FF0000 pour le rouge

Binaire vers décimal

Entrée : 11111111 (binaire)
Sortie : 255 (décimal)
Note :  valeur maximale du binaire 8 bits, c'est-à-dire le plus grand octet non signé

Hexadécimal vers binaire

Entrée : 1A3F (hexadécimal)
Sortie : 1101000111111 (binaire)
Note :  chaque 4 chiffres binaires correspondent à 1 chiffre hexadécimal

Octal vers hexadécimal

Entrée : 377 (octal)
Sortie : FF (hexadécimal)
Note :  permission Unix 377 (rwxrwxrwx) équivaut à FF en hex

Base personnalisée (base 36)

Entrée : ZZ (base 36)
Sortie : 1295 (décimal)
Note :  la base 36 utilise 0-9 et A-Z ; ZZ est la plus grande valeur à 2 chiffres dans ce système

FAQ

Quelles bases sont prises en charge ?

Binaire (base 2), octal (base 8), décimal (base 10), hexadécimal (base 16) et bases personnalisées arbitraires de 2 à 36. Les bases au-delà de 36 nécessitent un alphabet étendu et sortent du périmètre de cet outil.

Comment les lettres sont-elles utilisées dans les bases supérieures ?

Les bases supérieures à 10 utilisent des lettres : A=10, B=11, … F=15 en hexadécimal ; A=10 jusqu'à Z=35 en base 36. Les majuscules et les minuscules fonctionnent en saisie ; la sortie est en majuscules par défaut.

Comment convertir un nombre négatif ou fractionnaire ?

Les entiers négatifs fonctionnent directement : la page les stocke en interne en BigInt JavaScript ou en entiers signés. Les valeurs fractionnaires (par ex. 0,5 en décimal → 0,1 en binaire) sont prises en charge mais limitées à environ 15 chiffres significatifs en raison de la précision des nombres flottants.

Quelle est la différence entre complément à deux et signe et magnitude ?

Le complément à deux est la façon dont les ordinateurs représentent les entiers négatifs : le bit de poids fort signifie « négatif » et le reste encode la valeur plus un décalage. Signe et magnitude se contente d'inverser un bit de signe. La page affiche en général une représentation signe et magnitude (signe de type décimal), pas le motif binaire. Utilisez une calculatrice en mode programmeur si vous devez voir le complément à deux.

Pourquoi mon résultat hexadécimal n'a-t-il pas le même remplissage qu'un autre outil ?

Les valeurs hexadécimales peuvent être ou non complétées à gauche jusqu'à une frontière d'octet ou de mot. 0xff et 0x000000FF sont le même nombre, simplement affichés avec un remplissage différent. La page n'ajoute pas de zéros automatiquement ; ajoutez-les manuellement si votre contexte (par ex. adresse MAC à largeur fixe, segment IPv6) l'exige.

Y a-t-il des limites sur la taille du nombre ?

BigInt en JavaScript gère des entiers de taille arbitraire, donc la conversion entre bases entières fonctionne pour des nombres de toute longueur pratique. La conversion fractionnaire est limitée par les 15 à 17 chiffres significatifs du type Number.

Puis-je convertir des adresses IP ou des codes couleur ici ?

Indirectement : convertissez chaque octet séparément. Pour les IP en notation pointée, convertissez chaque octet du décimal à l'hexadécimal ; pour les codes couleur #RRGGBB, découpez en trois paires d'octets. Des outils dédiés aux IP et aux couleurs gèrent l'analyse pour vous.