Aller au contenu principal
CalcMax

Convertisseur d’hexadécimal en décimal

Résultat

10 815

Décimal

Valeurs de position
2×4096 + 10×256 + 3×16 + 15

Un convertisseur d’hexadécimal en décimal réécrit un nombre hexadécimal en base dix, et contrairement à la conversion vers le binaire c’est de la vraie arithmétique. La valeur d’un nombre hexadécimal est la somme de chaque caractère multiplié par la puissance de seize que vaut sa position, en comptant à partir de zéro à droite. 2A3F a un F à la dernière place, donc le F vaut 15 ; un 3 à la place suivante, qui vaut 3×16 ; un A à celle d’après, qui vaut 10×256 ; et un 2 devant, qui vaut 2×4 096. Les additionner donne 10 815. C’est avec les lettres que cela se gâte, et de deux façons. D’abord, A doit devenir 10 et F doit devenir 15 avant toute multiplication — lire A comme un 1 donne une réponse qui a l’air plausible et qui est fausse. Ensuite, la valeur que représente une lettre est multipliée par sa position, donc un F à la dernière place vaut 15 et un F une place à gauche vaut 240 ; la lettre n’est pas la quantité, c’est un coefficient. Les puissances de seize sont l’autre moitié de la page, et elles ont une forme qui vaut la peine d’être connue : 1, puis 16, puis 256, puis 4 096, puis 65 536, et ainsi de suite, chacune valant seize fois la précédente. Lire un nombre hexadécimal contre cette liste, de droite à gauche, va plus vite que de calculer une puissance sur place. Comme seize est une puissance de deux, ce sont aussi les puissances de deux prises quatre par quatre — 16 vaut 2⁴, 256 vaut 2⁸, 65 536 vaut 2¹⁶ — et c’est pourquoi les mêmes positions qui portent quatre bits portent chacune une puissance de seize. La page imprime toute la somme à côté de la réponse, si bien que le résultat se vérifie terme par terme : 2×4 096 + 10×256 + 3×16 + 15 font 10 815, et une erreur sur un seul caractère se voit comme une somme qui ne retombe pas sur le nombre attendu.

Les puissances de seize, de la position la plus à droite à la plus large qu’une saisie acceptée puisse atteindre

RangPuissanceValeur
1316¹³4503599627370496
1216¹²281474976710656
1116¹¹17592186044416
1016¹⁰1099511627776
916⁹68719476736
816⁸4294967296
716⁷268435456
616⁶16777216
516⁵1048576
416⁴65536
316³4096
216²256
116¹16
016⁰1

Quatorze lignes, de 16⁰ à 16¹³, et la longueur n’est pas arbitraire : quatorze caractères est la saisie la plus large que cette famille accepte, le tableau couvre donc chaque position qu’une réponse peut utiliser et s’arrête là. Le lire de haut en bas, c’est lire les positions de la réponse de droite à gauche — la dernière ligne est le caractère le plus à droite et la première est le plus à gauche. La colonne du milieu est la position écrite comme puissance, ce par quoi la somme du panneau du dessus multiplie ; la troisième colonne est cette puissance calculée, par quoi l’on multiplie en pratique. Ces valeurs recoupent les pages binaires : 16 vaut 2⁴, 256 vaut 2⁸ et 65 536 vaut 2¹⁶, parce qu’un caractère hexadécimal tient quatre bits. Le même tableau répond donc aussi à la question de ce que vaut un groupe de quatre bits quand on le lit comme un nombre plutôt que comme des bits. Il est fixe et ne suit pas ce que vous avez tapé.

Formule

2A3F = 2×16³ + 10×16² + 3×16¹ + 15×16⁰ = 2×4 096 + 10×256 + 3×16 + 15 = 10 815

2A3F
Le nombre hexadécimal à convertir. Les lettres ne sont pas sensibles à la casse, donc 2a3f et 2A3F sont la même valeur ; un zéro de tête ne change rien, et un signe moins placé devant donne un résultat négatif
16ⁿ
La puissance de seize attachée à une position, comptée à partir de zéro sur le caractère le plus à droite. Le plus à droite vaut 16⁰, c’est-à-dire 1, le suivant 16¹, c’est-à-dire 16, et chaque pas vers la gauche multiplie de nouveau par seize
2, 10, 3, 15
Les caractères lus comme des valeurs, les lettres déjà remplacées — A devient 10 et F devient 15 avant toute multiplication. Lire A comme un 1 est l’erreur que cette ligne existe pour empêcher, et c’est la façon la plus courante dont cette conversion se gâte
2×4 096
Un terme de la somme : la valeur du caractère fois la puissance de sa position. Chaque caractère apporte un terme, y compris ceux qui valent zéro, encore qu’un terme nul ne change rien et soit simplement laissé de côté dans la somme imprimée
= 10 815
Le total des termes. C’est un nombre décimal et non une suite de chiffres dans une autre base, et c’est pourquoi la réponse de cette page peut servir directement dans un calcul ultérieur
14 caractères
La saisie la plus large acceptée ici, soit 1FFFFFFFFFFFFF. Quatorze caractères est la longueur à laquelle la valeur atteint 9 007 199 254 740 991, au-delà de laquelle une machine ne peut plus tenir deux entiers voisins à l’écart ; une saisie plus longue est donc refusée plutôt que convertie

Lire une valeur hexadécimale comme une valeur décimale, c’est ce que l’on fait chaque fois qu’un nombre écrit pour une machine doit être comparé à un nombre écrit pour un humain. Un code de couleur a trois canaux de deux caractères chacun, et savoir que FF vaut 255 et que 80 vaut 128 fait la différence entre ajuster une teinte à l’œil et l’ajuster en chiffres. Les tailles suivent la même histoire : 400 en hexadécimal vaut 1 024, une taille de page familière, et une carte mémoire imprimée en « 0x100000 » fait 1 048 576 octets pour qui doit y ajouter une seconde région. Vérifier une somme de contrôle, comparer un préfixe d’empreinte ou convertir le masque d’une fiche technique, c’est cette conversion ; lire un numéro de série ou un identifiant qui s’est révélé hexadécimal, c’est encore elle. Les exercices la demandent sous la forme convertir un hexadécimal en décimal, généralement avec les puissances écrites, c’est-à-dire exactement la somme que cette page imprime : un terme par caractère, les lettres déjà substituées. C’est aussi la conversion à sortir quand une réponse hexadécimale venue d’un autre outil demande à être recoupée, puisque le total décimal est le seul nombre auquel tous les autres peuvent être comparés.

Exemples détaillés

  1. Lire 2A3F

    1. Écrivez les puissances de seize sous les quatre caractères, en partant de la droite : 1, 16, 256 et 4 096
    2. Remplacez les lettres par leurs valeurs : A vaut 10 et F vaut 15
    3. Multipliez chaque caractère : 2×4 096 font 8 192, 10×256 font 2 560, 3×16 font 48, et 15×1 font 15
    4. Additionnez les quatre termes : 8 192 + 2 560 + 48 + 15 = 10 815

    Le cas par défaut, et celui où les deux lettres demandent à être converties. Le A n’est pas un 1 et le F n’est pas un 5 — lire la chaîne comme si les lettres étaient des chiffres donnerait une réponse d’environ deux mille, ce qui est assez loin pour sauter aux yeux. L’erreur plus discrète est une lettre correctement convertie mais multipliée par la mauvaise puissance.

  2. Un octet entier, FF

    1. Deux caractères, donc les positions valent 16 et 1
    2. F vaut 15, donc le caractère de gauche apporte 15×16 = 240
    3. Le caractère de droite apporte 15×1 = 15
    4. 240 + 15 = 255

    Deux caractères et la plus grande valeur qu’ils peuvent porter, et c’est pourquoi FF vaut 255 et non 256 : la plage commence à 00. Ce couple vaut la peine d’être retenu tel quel, puisqu’il revient dans les valeurs de couleur, les champs d’un octet et toute chaîne hexadécimale de deux caractères exactement.

  3. Lire B2

    1. B vaut 11, donc le caractère de gauche apporte 11×16 = 176
    2. Le caractère de droite apporte 2
    3. 176 + 2 = 178

    B se place une unité au-dessus de A, donc 11×16 plutôt que 10×16 — l’écart entre lire B comme 11 et le lire comme 10 vaut seize, c’est-à-dire une position hexadécimale entière. C’est la même valeur que les pages binaires prennent comme exemple d’un octet, et 10110010 en binaire est son visage en base deux.

  4. La plus grande saisie, 1FFFFFFFFFFFFF

    1. Quatorze caractères, donc les positions vont de 16¹³ à 16⁰
    2. Le 1 de tête vaut 16¹³, soit 4 503 599 627 370 496
    3. Chacun des treize caractères F vaut 15, multiplié par la puissance de sa propre position
    4. Additionner les quatorze termes donne 9 007 199 254 740 991

    Quatorze termes, c’est le plus large que cette somme atteigne, et c’est la même frontière que les pages décimales touchent à 9 007 199 254 740 991 et les pages de lecture à cinquante-trois chiffres. Rien ne change dans la méthode à cette taille — c’est le même multiplier-puis-additionner, répété quatorze fois — et c’est la chose utile à retenir de cet exemple.

Limites

La saisie ici est une chaîne hexadécimale plutôt qu’un nombre décimal, il n’y a donc pas de virgule décimale à refuser : les caractères en dehors de 0 à 9 et de A à F sont refusés à la place. La saisie peut faire au plus quatorze caractères, soit 1FFFFFFFFFFFFF, et tout ce qui est plus long est refusé avec un message plutôt que tronqué. Les zéros de tête sont acceptés et ne changent rien, et un signe moins placé devant produit un résultat décimal négatif — la somme est calculée sur les chiffres et le signe est appliqué au total. La casse n’est pas significative à la saisie, mais la somme des valeurs de position est toujours imprimée avec des lettres majuscules. Le tableau plus bas liste les puissances de seize de 16⁰ à 16¹³ et il est fixe, il ne suit donc pas ce que vous avez tapé ; il est là pour que le poids d’une position quelconque puisse être consulté. Le sens inverse, d’un nombre décimal vers l’hexadécimal, est une page à part, et celle-ci ne fait aucune arithmétique sur le résultat au-delà de la somme qu’elle imprime.

Questions fréquentes

Comment convertir un hexadécimal en décimal à la main ?
Écrivez les puissances de seize sous les caractères, en partant de 1 à droite et en multipliant par seize à chaque pas vers la gauche, puis multipliez chaque caractère par la puissance placée dessous et additionnez les résultats. Les lettres doivent être remplacées d’abord : A vaut 10, B vaut 11, C vaut 12, D vaut 13, E vaut 14 et F vaut 15. Pour 2A3F cela donne 2×4 096 + 10×256 + 3×16 + 15, soit 10 815.
Que veulent dire les lettres A à F ?
Ce sont les valeurs dix à quinze, dans l’ordre : A vaut 10, B vaut 11, C vaut 12, D vaut 13, E vaut 14 et F vaut 15. La base seize a besoin de seize caractères distincts et les chiffres décimaux n’en fournissent que dix, il faut donc six symboles de plus, et les lettres sont la convention retenue. Chaque lettre est un coefficient exactement comme un chiffre, donc un F vaut quinze fois ce que porte sa position — quinze à la dernière place, 240 une place à gauche.
Quel est le plus grand nombre hexadécimal que je peux convertir ici ?
Quatorze caractères. 1FFFFFFFFFFFFF est le plafond et il se convertit en 9 007 199 254 740 991, la même frontière que les pages décimales énoncent comme cinquante-trois chiffres binaires. Une chaîne plus longue est refusée avec un message plutôt que tronquée ou arrondie, parce qu’au-delà de cette largeur une machine ne distingue plus deux entiers voisins et que la réponse ne serait pas fiable.
Pourquoi FF vaut-il 255 et non 256 ?
Parce que le comptage part de 00 et non de 01. Deux caractères hexadécimaux donnent 256 chaînes différentes, de 00 à FF, donc la plus grande valeur qu’ils peuvent représenter est 255 — une de moins que le nombre de possibilités. Le même décalage d’une unité apparaît en binaire, où huit bits vont de 0 à 255, et c’est pourquoi le maximum d’un octet vaut 255 dans tous les langages qui ont des octets.
Hexadécimal vers décimal, est-ce la même chose qu’hexadécimal vers binaire ?
Non. La conversion vers le binaire est une substitution qui ne demande aucun calcul : chaque caractère devient quatre bits, et c’est toute la méthode. La conversion vers le décimal est une somme pondérée, parce que les positions valent des puissances de seize et non des puissances de deux — 2A3F vaut 2×4 096 + 10×256 + 3×16 + 15, et les lettres doivent être transformées en valeurs avant toute multiplication. Le résultat binaire de la même chaîne est 10101000111111, et les deux réponses sont la même quantité écrite de deux façons.
Pourquoi la page imprime-t-elle les puissances de seize dans un tableau ?
Parce que les puissances sont les poids par lesquels chaque terme de la somme est multiplié, et les consulter va plus vite que les calculer. Le tableau va de 16⁰ à 16¹³ et il est exhaustif pour cette page : quatorze caractères est la saisie la plus large acceptée, donc aucune réponse acceptée n’utilise une position qu’il ne liste pas. Le lire à côté de la somme du panneau de résultats montre quel poids appartient à quel caractère.

Références

Calculatrices liées