Aller au contenu principal
CalcMax

Convertisseur de binaire en hexadécimal

Résultat

B2

Hexadécimal

Groupés par quatre
1011 0010

Un convertisseur de binaire en hexadécimal réécrit un nombre de la base deux dans la base seize. C’est la conversion la plus facile de la famille, parce que rien ne s’y calcule : un chiffre hexadécimal contient exactement quatre chiffres binaires, tout le travail consiste donc à découper la suite binaire en groupes de quatre en partant de la droite et à lire chaque groupe comme un seul chiffre. 10110010, lu en binaire, se découpe en 1011 et 0010, qui valent B et 2, la réponse est donc B2. Ce rapport fixe de quatre pour un est la raison d’être de l’hexadécimal — un octet fait huit bits, donc exactement deux chiffres hexadécimaux, et une adresse de seize bits en fait exactement quatre — et c’est pourquoi les programmeurs écrivent le code machine, les valeurs de couleur et les adresses mémoire dans cette base plutôt qu’en binaire. La page imprime le découpage qu’elle a utilisé sous la réponse, parce que ce découpage est la conversion. Si le nombre de chiffres n’est pas un multiple de quatre, le groupe de gauche est complété par des zéros pour le devenir : 10110 en binaire donne 0001 0110, qui vaut 16. Ces zéros ne changent pas la valeur, seulement le découpage.

Les seize groupes de quatre bits et le chiffre hexadécimal que chacun représente

QuartetChiffre hexadécimalDécimal
000000
000111
001022
001133
010044
010155
011066
011177
100088
100199
1010A10
1011B11
1100C12
1101D13
1110E14
1111F15

C’est toute la conversion, écrite en entier. Chaque groupe de quatre bits qui existe y figure une fois et une seule, donc rien n’est à calculer au moment de s’en servir — le tableau est clos, et un lecteur qui l’a parcouru une fois peut lire n’importe quelle suite binaire dans cette base en la découpant en quatre et en cherchant chaque morceau. Il est fixe plutôt que déduit de la saisie du dessus, il ne change donc pas quand le nombre change, et il n’y a pas de contradiction quand les deux semblent se contredire : le panneau répond pour ce qui a été tapé, le tableau répond à la question générale de ce que sont les seize groupes. Lisez la colonne du milieu vers le bas et elle compte de 0 à F sans trou, ce qui est le propos — les lettres ne sont pas un code mais la suite des chiffres au-delà de neuf. Lisez la première colonne vers le bas et elle compte en binaire exactement du même pas, ce qui rend la correspondance mécanique. Le tableau s’arrête à 1111 parce que c’est là que finit un chiffre hexadécimal : la valeur suivante demande un second chiffre, et c’est le regroupement que la page du dessus fait déjà.

Formule

en binaire : 10110010 = 1011 0010 = B2

binary
Le nombre à réécrire, écrit en base deux. La conversion n’en change rien — la même valeur est simplement écrite avec un autre jeu de chiffres
quartet
Un groupe de quatre chiffres binaires. C’est l’unité dans laquelle travaille cette conversion, et il existe exactement seize quartets possibles, ce qui est précisément la raison pour laquelle la base seize est celle qui s’apparie au binaire
0-9, A-F
Les seize chiffres hexadécimaux, un par quartet. Dix sont les chiffres habituels et les six autres sont les lettres A à F, qui valent dix à quinze
zéros de tête
Les zéros ajoutés à gauche du premier groupe quand le nombre de chiffres n’est pas un multiple de quatre. Ils changent le découpage et jamais la valeur, c’est pourquoi 10110 et 00010110 en binaire sont deux écritures du même nombre
en partant de la droite
Le sens dans lequel le découpage avance. Les groupes se forment à partir du bout droit parce que c’est là que se trouve le rang des unités, exactement comme on sépare les milliers dans un nombre décimal
53 bits
La longueur maximale de la saisie : cinquante-trois chiffres binaires, soit 9 007 199 254 740 991, ce qui fait quatorze chiffres hexadécimaux à l’autre bout. C’est la largeur à laquelle une machine cesse de distinguer deux entiers voisins, donc une saisie plus longue est refusée plutôt qu’arrondie

C’est la conversion que l’on fait le plus souvent sans la voir comme une conversion. Lire un octet dans un débogueur, vérifier une valeur de couleur, calculer un masque de sous-réseau, décoder le début d’une empreinte, dépouiller un vidage de registres ou comparer deux indicateurs dans un journal sont autant de cas où les bits sont la vérité et où l’hexadécimal est la forme sous laquelle ils sont imprimés — et passer d’une vue à l’autre est une constante du travail bas niveau. Le sens compte dans les deux directions : une fiche technique donne un registre en hexadécimal et le bit à vérifier se retrouve en le développant, tandis qu’une trace d’oscilloscope ou une question sur un motif de bits arrive en binaire et doit être transcrite dans la forme qu’utilise la documentation. Les élèves la rencontrent comme le raccourci qui rend les longs nombres binaires maniables : une suite de seize chiffres binaires est illisible et ses quatre chiffres hexadécimaux ne le sont pas, et savoir que le rapport est de quatre pour un plutôt que quelque chose à calculer retire toute l’arithmétique de la tâche. La page imprime le découpage pour que le raccourci soit visible plutôt qu’affirmé, ce qui la rend utilisable aussi bien comme vérification d’une conversion faite à la main que comme remplacement de celle-ci.

Exemples détaillés

  1. Réécrire 10110010 en binaire

    1. Découpez la suite en groupes de quatre en partant de la droite : 1011 et 0010
    2. Lisez le premier groupe : 1011 en binaire vaut 8 + 2 + 1 = 11, soit B
    3. Lisez le second groupe : 0010 vaut 2
    4. Les deux chiffres réunis donnent B2

    Le cas par défaut, et un octet, donc le découpage tombe juste. B2 est la forme sous laquelle cette valeur apparaîtrait dans un débogueur ou une fiche technique — les huit bits sont toujours dessous, c’est pourquoi le découpage est imprimé à côté de la réponse au lieu d’être laissé implicite.

  2. Un seul quartet, 1111

    1. Quatre chiffres font déjà exactement un groupe
    2. 1111 en binaire vaut 8 + 4 + 2 + 1 = 15
    3. Quinze s’écrit F en hexadécimal
    4. La réponse est un seul chiffre, F

    Le plus grand quartet, et celui qui montre pourquoi les lettres s’arrêtent là où elles s’arrêtent : quinze est la plus grande valeur que quatre bits puissent porter, donc F est le dernier chiffre de la base. Aucune valeur plus large ne s’écrit avec un seul chiffre hexadécimal, et c’est exactement la propriété qui est exploitée ici.

  3. Compléter une saisie courte, 10110 en binaire

    1. Cinq chiffres ne se divisent pas en quatre, commencez donc par la droite : 0110 forme un groupe complet
    2. Il reste un chiffre à gauche, complétez-le jusqu’à quatre : 0001
    3. 0001 vaut 1 et 0110 vaut 6, ce qui donne les deux chiffres 16
    4. Le découpage affiché est 0001 0110, plus long de deux chiffres que la saisie

    Le cas qui ressemble à une erreur et n’en est pas une. Le découpage affiché est plus long que la saisie parce qu’un chiffre hexadécimal fait quatre bits de large et que le dernier groupe doit être rempli jusqu’à cette largeur. 10110 et 00010110 en binaire sont le même nombre, et c’est le complément qui rend le second chiffre lisible — sans lui, le chiffre resté seul n’aurait aucun chiffre à être.

  4. Une valeur négative, -10110 en binaire

    1. Le signe moins est en dehors du nombre, mettez-le de côté et convertissez 10110 en binaire
    2. 10110 en binaire se regroupe en 0001 0110, qui se lit 16
    3. Remettez le signe sur les deux lectures : -16

    Le signe reste à l’extérieur des chiffres sur les deux sorties. Le replier dedans demanderait une largeur fixe où le faire, et il n’y en a pas ici — un processeur stockant cette valeur sur huit bits écrirait un motif de uns et de zéros qui dépend entièrement du fait que la largeur vaut huit. La lecture hexadécimale garde le signe pour la même raison que la lecture binaire.

Limites

Cette page ne réécrit que des nombres binaires entiers. Il n’y a pas de virgule binaire, donc une saisie fractionnaire est refusée plutôt que convertie, et aucune fraction hexadécimale n’est produite. La saisie peut faire au plus cinquante-trois chiffres binaires, soit 9 007 199 254 740 991 et quatorze chiffres hexadécimaux à l’autre bout ; au-delà, une machine ne peut plus tenir la valeur exactement et elle est refusée plutôt qu’approchée. Les zéros de tête de la saisie sont acceptés et ignorés, mais les zéros ajoutés par le découpage sont montrés exprès — une sortie complétée est plus large que sa saisie à dessein, et ce n’est pas une erreur. Un signe moins placé devant est accepté et reporté sur les deux sorties. Nombres entiers uniquement, donc il s’agit d’une conversion de lecture et non d’arithmétique : additionner, soustraire, multiplier et diviser dans l’une ou l’autre base se fait sur les pages de calculatrice liées plus bas, et le sens inverse, de l’hexadécimal vers le binaire, a sa propre page.

Questions fréquentes

Pourquoi la sortie est-elle plus longue que ce que j’ai tapé ?
Parce qu’un chiffre hexadécimal fait exactement quatre bits de large et que le groupe de gauche doit être rempli jusqu’à cette largeur. Une saisie de cinq chiffres comme 10110 en binaire, c’est un groupe complet (0110) plus un chiffre orphelin, et l’orphelin est complété à gauche pour donner 0001. Ces zéros ne changent pas la valeur — 10110 et 00010110 en binaire sont le même nombre — et c’est ce complément qui donne au dernier groupe un chiffre à être. Sans lui, le chiffre resté seul n’aurait rien à quoi correspondre dans le tableau.
Y a-t-il une arithmétique quelconque dans cette conversion ?
Non, et c’est ce qu’elle a d’intéressant. Comme seize est une puissance de deux, la frontière entre les bases tombe exactement tous les quatre chiffres binaires, la conversion est donc un regroupement et non un calcul. Rien n’est multiplié, rien n’est additionné et rien n’est retenu ; les chiffres sont découpés en quatre et chaque groupe est lu dans le tableau. C’est la raison pour laquelle on utilise l’hexadécimal plutôt qu’une autre notation compacte, et c’est pourquoi le découpage est imprimé à côté de la réponse : le découpage est la méthode, montrée plutôt que décrite.
Pourquoi un chiffre hexadécimal vaut-il quatre bits et non trois ou cinq ?
Parce que quatre bits peuvent porter exactement seize valeurs distinctes et qu’un chiffre hexadécimal a exactement seize symboles distincts. Trois bits n’en donneraient que huit, ce qui est la raison pour laquelle l’octal s’apparie à trois, et cinq bits en donneraient trente-deux, ce qu’aucune base courante n’utilise. La correspondance doit être exacte pour que le regroupement se fasse sans aucune retenue, et seules les puissances de deux la donnent. C’est aussi pour cela qu’un octet, qui fait huit bits, s’écrit toujours avec exactement deux chiffres hexadécimaux.
Quel est le plus long nombre binaire que je peux convertir ?
Cinquante-trois chiffres, soit 9 007 199 254 740 991 en décimal et quatorze chiffres hexadécimaux après conversion. Le plafond est une propriété de la façon dont une machine tient les nombres exactement, et non une règle choisie par cette page : au-delà de cette largeur, deux entiers voisins cessent d’être distinguables, donc une saisie plus longue ne pourrait pas être convertie fidèlement. Elle est refusée avec un message plutôt qu’arrondie, ce qui compte parce qu’une réponse arrondie ressemblerait ici à une valeur hexadécimale parfaitement ordinaire.
Puis-je convertir un nombre binaire fractionnaire ?
Pas sur cette page. Aucune virgule binaire n’est acceptée et aucune fraction hexadécimale n’est produite, parce qu’une conversion fractionnaire demanderait une décision supplémentaire sur le nombre de rangs à garder et sur l’arrondi du dernier. Toutes les pages de ce groupe travaillent en nombres entiers, donc la même saisie n’est jamais acceptée à un endroit et refusée à un autre. À l’intérieur de cette frontière, la conversion est exacte : tout nombre binaire entier jusqu’à la longueur limite correspond à exactement une valeur hexadécimale, sans aucun arrondi.
La casse des lettres a-t-elle une importance dans la réponse ?
La réponse est toujours imprimée en majuscules — B2 plutôt que b2 — mais les deux sont la même valeur et sont comprises partout. La documentation, les désassembleurs et les fiches techniques utilisent presque toujours les majuscules, tandis que les valeurs de couleur CSS s’écrivent par convention en minuscules, un lecteur venu de l’un ou l’autre côté reconnaîtra donc ce qu’il voit. Cette page imprime des majuscules par cohérence avec le reste de la famille et parce que c’est la convention des documents au milieu desquels on s’en sert.

Références

Calculatrices liées