Calculatrice de nombres hexadécimaux
Résultat
Hexadécimal
- Décimal
- 10 842
- Binaire
- 10101001011010
- Reste
- 0
Une calculatrice hexadécimale additionne, soustrait, multiplie et divise des nombres hexadécimaux, et donne la réponse en hexadécimal, en décimal et en binaire. L’hexadécimal est la base seize, ce qui veut dire qu’il faut seize symboles là où le décimal en a dix — les six qui manquent sont donc empruntés à l’alphabet, et A à F valent dix à quinze. Toute la notation est là : A n’est pas un code ni une abréviation, c’est le chiffre qui vient après 9. Les quatre opérations sont les habituelles : l’addition, la soustraction, la multiplication et la division se font colonne par colonne exactement comme en décimal, avec seize pour base au lieu de dix, une colonne est donc retenue quand elle dépasse F et non quand elle dépasse 9. La réponse est donnée trois fois parce que les trois lectures servent des lecteurs différents : l’hexadécimal est la forme sous laquelle la valeur s’écrit habituellement, le décimal est celle que la plupart des gens peuvent vérifier d’un coup d’œil, et le binaire est les bits sous-jacents, c’est-à-dire l’endroit d’où viennent les chiffres hexadécimaux. La division est une division entière, donc un reste obtient sa propre ligne au lieu d’un séparateur décimal.
Formule
2A3F + 1B = 2A5A (10 815 + 27 = 10 842)
- 2A3F
- Le premier nombre, écrit en base seize. Les lettres sont des chiffres : A vaut dix, B onze, jusqu’à F pour quinze. Lire A comme autre chose est l’erreur que cette page existe pour empêcher
- + − × ÷
- L’opération. Elle se fait colonne par colonne exactement comme en décimal, avec seize pour base au lieu de dix, donc une colonne est retenue dès qu’elle dépasse F
- F + 1 = 10
- La règle de la retenue dans cette base : quinze plus un épuise les chiffres et ouvre une nouvelle colonne. C’est le même événement que 9 + 1 = 10 en décimal, une base plus loin
- somme de chiffre × 16ⁿ
- Comment la lecture décimale est produite : chaque chiffre multiplié par sa valeur de position et les résultats additionnés. C’est ainsi que 2A3F ressort à 10 815 — 8 192 plus 2 560 plus 48 plus 15
- 4 bits par chiffre
- Pourquoi cette base est utilisée tout court. Un chiffre hexadécimal contient exactement quatre chiffres binaires, donc un octet en fait exactement deux et aucun calcul n’est nécessaire pour passer d’une notation à l’autre — seulement un regroupement
- reste
- Ce qui subsiste quand une division ne tombe pas juste. La ligne est toujours présente, et elle affiche 0 pour les trois opérations qui ne peuvent pas en laisser — un zéro y signifie que l’opération n’a rien laissé, et non que la ligne n’a pas été remplie
- 53 bits
- La largeur de saisie acceptée ici : jusqu’à 9 007 199 254 740 991, qui s’écrit 1FFFFFFFFFFFFF dans cette base — quatorze chiffres. Au-delà de cette largeur, un nombre machine ne distingue plus ses voisins, et l’arithmétique cesserait silencieusement d’être exacte
L’hexadécimal est ce à quoi ressemble le binaire quand un humain doit le lire. Partout où une valeur fait seize bits ou plus — une adresse mémoire, une couleur, une empreinte, un listing de code machine, un vidage de registres, une capture de paquets — elle est imprimée dans cette base, et faire de l’arithmétique sur ces valeurs est une tâche quotidienne pour qui travaille à ce niveau. Ajouter un décalage à un pointeur, calculer la taille d’une structure, calculer une somme de contrôle, parcourir une plage d’adresses en déboguant ou vérifier quels bits un masque allume sont toutes des opérations que l’on fait sur des nombres hexadécimaux, et la lecture binaire placée à côté de la réponse est ce qui retransforme le résultat en indicateurs et en champs. Les graphistes et les développeurs front-end la rencontrent dans les valeurs de couleur, où une paire de deux chiffres par canal est exactement l’octet que l’écran attend. La page sert aussi dans l’autre sens : une valeur connue en décimal est convertie en hexadécimal pour être comparée à une spécification ou collée dans un outil, et la lecture binaire répond à la question de savoir quels bits sont réellement allumés. Les élèves qui apprennent les bases en tirent le même bénéfice, puisque les lettres sont la partie qui paraît arbitraire tant que les valeurs de position ne sont pas étalées.
Exemples détaillés
Additionner 2A3F et 1B
- Alignez les deux nombres à droite : 2A3F et 001B
- Colonne de droite : F + B, soit 15 + 11 = 26 = 16 + 10, on écrit donc A et on retient 1
- Colonne suivante : 3 + 1 + le 1 retenu = 5, on écrit 5
- Colonne suivante : A + 0 = A, on écrit A
- Colonne de gauche : 2 + 0 = 2, on écrit 2
- Le résultat se lit 2A5A, soit 10 842 en décimal
L’exemple par défaut, et celui qui montre une retenue franchir la frontière des lettres : F plus B font vingt-six, c’est-à-dire un seize et dix, le chiffre écrit est donc A plutôt qu’un nombre à deux chiffres. La lecture binaire est les mêmes bits regroupés quatre par quatre, ce qui est une vérification utile de l’ensemble.
Diviser 2A3F par 1B
- C’est 10 815 divisé par 27
- 27 tient quatre cents fois exactement dans 10 815, et il reste 15
- Quatre cents s’écrit 190 en hexadécimal, et le reste quinze s’écrit F
- La page annonce 190 avec un reste de F
Le reste vaut ici F, c’est-à-dire quinze — une valeur qui a besoin d’une lettre bien qu’elle soit plus petite que le diviseur. C’est aussi l’exemple qui justifie la place que prend la ligne de reste toujours présente : sans elle la réponse se lirait 190, et 400 fois 27 font 10 800, pas 10 815.
La même somme en minuscules
- Les minuscules et les majuscules sont les mêmes chiffres : a vaut dix exactement comme A
- L’arithmétique ne change pas, la réponse est donc le même 2A5A
- La page imprime sa réponse en majuscules quelle que soit la façon dont la saisie a été tapée
Bon à savoir parce que les deux conventions sont en usage quotidien — les valeurs de couleur CSS s’écrivent presque toujours en minuscules, tandis que les désassembleurs et les fiches techniques impriment des majuscules — et qu’aucune n’est fausse. Seule la réponse imprimée est normalisée, et elle l’est vers le haut.
Limites
Cette page ne travaille que sur des nombres hexadécimaux entiers. Il n’y a ni virgule hexadécimale ni saisie fractionnaire, donc « 2A.8 » n’est pas accepté ; une division qui ne tombe pas juste donne un quotient tronqué plus un reste plutôt qu’une réponse fractionnaire. Les saisies sont limitées à 1FFFFFFFFFFFFF, soit 9 007 199 254 740 991 — la largeur à laquelle un nombre machine cesse de distinguer ses voisins — et les résultats sont tenus au même plafond, un débordement est donc signalé plutôt que traité approximativement. Les résultats négatifs portent un signe moins devant au lieu d’être écrits en complément à deux, et aucune largeur fixe n’est supposée : 1B fait deux chiffres ici, et non l’octet bas d’une quelconque valeur. Les minuscules sont acceptées et les réponses sont imprimées en majuscules. La division par zéro est refusée. La page fait de l’arithmétique et de la conversion dans trois bases ; elle ne fait pas d’opérations bit à bit, et il n’y a ici ni AND, ni OR, ni XOR, ni décalage.
Questions fréquentes
- Que veulent dire les lettres ?
- Ce sont des chiffres. La base seize a besoin de seize symboles distincts et il n’y en a que dix dans le jeu familier, donc A à F valent dix à quinze — A vaut dix et F quinze. Rien n’est encodé par le choix des lettres ; ce sont simplement les caractères suivants de l’alphabet, et n’importe quel ensemble de seize symboles distincts ferait le même travail. Majuscules et minuscules désignent exactement le même chiffre ici.
- Pourquoi 1 + 1 ne provoque-t-il pas de retenue ici alors que c’est le cas en binaire ?
- Parce que la base est différente, donc la colonne s’épuise à un autre moment. En base deux il n’existe pas de chiffre pour deux, deux uns sont donc retenus immédiatement. En base seize il existe des chiffres jusqu’à quinze, une colonne n’est donc retenue que lorsque la somme dépasse F. Deux plus deux font quatre dans toutes les bases ; il n’y a que les symboles de comptage qui changent.
- La casse de ma saisie a-t-elle une importance ?
- Non. 2a3f et 2A3F sont le même nombre et les deux sont acceptés, parce que les lettres sont des chiffres et qu’un chiffre n’est pas sensible à la casse. Les réponses sont imprimées en majuscules dans tous les cas. Les deux conventions sont en usage quotidien — les valeurs de couleur CSS s’écrivent plutôt en minuscules tandis que les désassembleurs et les fiches techniques utilisent les majuscules — accepter les deux ne coûte donc rien et refuser l’une serait arbitraire.
- Quel est le plus grand nombre que je peux saisir ?
- 1FFFFFFFFFFFFF, soit quatorze chiffres hexadécimaux et 9 007 199 254 740 991 en décimal — un un suivi de cinquante-trois uns en binaire. Au-delà de cette largeur, une machine ne distingue plus deux entiers voisins, l’arithmétique cesserait donc silencieusement d’être exacte : la réponse aurait l’air d’un nombre sans en être un. Les saisies plus larges sont refusées plutôt que tronquées, et un résultat qui déborde du même plafond l’est aussi.
- Est-ce la même chose qu’un convertisseur de bases ?
- C’en est la moitié arithmétique. Cette page prend deux nombres et une opération ; les pages qui convertissent une seule valeur entre les bases sont distinctes, et elles sont liées depuis celle-ci. Tout réunir dans une seule page avec une base d’entrée et une base de sortie serait un autre dessin, et cela ferait perdre la possibilité de vérifier la forme de ce que vous tapez — une page qui accepte n’importe quelle base ne peut pas vous dire que 2G n’est pas un nombre dans la base que vous avez choisie.
- Pourquoi y a-t-il toujours une ligne de reste ?
- Parce que le panneau de résultats est un ensemble fixe de lignes plutôt qu’une liste qui change de forme selon l’opération, et qu’une ligne qui va et vient serait plus difficile à lire qu’une ligne qui reste en place. Additionner, soustraire et multiplier des nombres entiers ne peut pas laisser de reste, la ligne affiche donc 0 pour ces opérations, et ce zéro est la réponse honnête et non un texte de remplissage. Pour la division, c’est ce qui empêche un quotient tronqué de passer pour une réponse exacte.
Références
- Hexadecimal — the base-sixteen system, the digits beyond nine, and the relationship between one hexadecimal digit and four binary digits — Wolfram MathWorld (United States)
- Number base — why a numeral's value depends on its position and on the base, and how the same quantity is written in different bases — Wolfram MathWorld (United States)
- IEEE 754 — the double-precision format these calculations are carried out in, and the 53-bit significand that fixes this page's input ceiling — IEEE Standards Association (United States)
- 教育部关于印发义务教育课程方案和课程标准(2022 年版)的通知——Le cinquième point de la liste annexée à cette notification est le programme de mathématiques de l'enseignement obligatoire (édition 2022) ; les systèmes de numération et la notation positionnelle relèvent du contenu où se rejoignent les programmes de mathématiques et de technologie de l'information, et le texte des programmes ainsi que la répartition par cycle sont ceux de cette annexe — 中华人民共和国教育部