Systèmes de nombres hexadécimaux et binaires. Pourquoi avons-nous besoin du système de nombres hexadécimaux ?

Tableau 2.4. Système de codage hexadécimal
Système décimal système hexadécimal Système décimal système hexadécimal
0 0 (0000) 10 Un (1010)
1 1(0001) 11 B (1011)
2 2 (0010) 12 C (1100)
3 3 (0011) 13 D (1101)
4 4 (0100) 14 E(1110)
5 5 (0101) 15 F(1111)
6 6 (0110) 16 10 (00010000)
7 7 (0111) 17 11 (00010001)
8 8 (1000) 18 12 (00010010)
9 9 (1001) 19 13 (00010011)

Pour convertir un nombre hexadécimal en nombre décimal, vous devez multiplier la valeur du chiffre le plus bas (zéro) par un, la valeur du chiffre suivant (premier) par 16, le deuxième chiffre par 256 (16 2), etc. , puis ajoutez tous les produits. Par exemple, prenons le numéro A17F :

A17F=F*16 0 + 7*16 1 + 1*16 2 + A*16 3 = 15*1 + 7*16+1*256+10*4096=41343

Tableau 2.5. système de codage octal
Système décimal système octal Système décimal système octal
0 0 (000) 10 12 (001010)
1 1(001) 11 13 (001011)
2 2 (010) 12 14 (001100)
3 3 (011) 13 15 (001101)
4 4 (100) 14 16 (001110)
5 5 (101) 15 17 (001111)
6 6 (110) 16 20 (010000)
7 7 (111) 17 21 (010001)
8 10 (001000) 18 22 (010010)
9 11 (001001) 19 23 (010011)

Mais tout spécialiste des équipements numériques (développeur, opérateur, réparateur, programmeur, etc.) doit apprendre à manipuler les systèmes hexadécimaux et binaires aussi librement qu'avec les systèmes décimaux classiques, afin qu'aucun transfert d'un système à l'autre ne soit nécessaire.

Beaucoup moins fréquemment que l'hexadécimal, on utilise le codage octal, qui repose sur le même principe que l'hexadécimal, mais les chiffres binaires sont divisés en groupes de trois chiffres. Chaque groupe (chiffre de code) est alors désigné par un symbole. Chaque bit du code octal peut prendre huit valeurs : 0, 1, 2, 3, 4, 5, 6, 7 (Tableau 2.5).

En plus des codes évoqués, il existe également la représentation dite binaire-décimale des nombres. Comme en code hexadécimal, en code BCD chaque chiffre du code correspond à quatre chiffres binaires, cependant, chaque groupe de quatre chiffres binaires peut prendre non pas seize, mais seulement dix valeurs, codées par les caractères 0, 1, 2, 3, 4. , 5, 6, 7, 8, 9. Autrement dit, une décimale correspond à quatre décimales binaires. En conséquence, il s'avère qu'écrire des nombres en code décimal binaire n'est pas différent de l'écriture en code décimal ordinaire (Tableau 2.6), mais en réalité il s'agit simplement d'un code binaire spécial, dont chaque chiffre ne peut prendre que deux valeurs : 0 et 1. Le code BCD est parfois très pratique pour organiser des indicateurs numériques décimaux et des tableaux de bord.

Tableau 2.6. Système de codage décimal binaire
Système décimal Système décimal binaire Système décimal Système décimal binaire
0 0 (0000) 10 10 (00010000)
1 1(0001) 11 11 (00010001)
2 2 (0010) 12 12 (00010010)
3 3 (0011) 13 13 (00010011)
4 4 (0100) 14 14 (00010100)
5 5 (0101) 15 15 (00010101)
6 6 (0110) 16 16 (00010110)
7 7 (0111) 17 17 (00010111)
8 8 (1000) 18 18 (00011000)
9 9 (1001) 19 19 (00011001)

En code binaire, vous pouvez effectuer toutes les opérations arithmétiques sur les nombres : addition, soustraction, multiplication, division.

Pensez, par exemple, à ajouter deux nombres binaires de 4 bits. Ajoutons les nombres 0111 (décimal 7) et 1011 (décimal 11). L'addition de ces nombres n'est pas plus difficile qu'en notation décimale :

En ajoutant 0 et 0, nous obtenons 0, en ajoutant 1 et 0, nous obtenons 1, en ajoutant 1 et 1, nous obtenons 0 et passons au chiffre 1 suivant. Le résultat est 10010 (décimal 18). Lors de l’ajout de deux nombres binaires de n bits, le résultat peut être un nombre de n bits ou (n+1) bits.

La soustraction se fait de la même manière. Supposons que le nombre 0111 (7) soit soustrait du nombre 10010 (18). Nous écrivons les nombres alignés sur le chiffre le moins significatif et soustrayons de la même manière que dans le cas du système décimal :

En soustrayant 0 de 0, nous obtenons 0, en soustrayant 0 de 1, nous obtenons 1, en soustrayant 1 de 1, nous obtenons 0, en soustrayant 1 de 0, nous obtenons 1 et empruntons 1 dans le chiffre suivant. Le résultat est 1011 (décimal 11).

Lors de la soustraction, il est possible d'obtenir des nombres négatifs, il faut donc utiliser représentation binaire nombres négatifs.

Pour représenter simultanément à la fois des nombres binaires positifs et des nombres binaires négatifs, ce qu'on appelle code supplémentaire. Les nombres négatifs dans ce code sont exprimés par un nombre qui, ajouté à un nombre positif de même valeur, donnera zéro. Pour obtenir un nombre négatif, vous devez remplacer tous les bits du même nombre positif par des bits opposés (0 à 1, 1 à 0) et ajouter 1 au résultat. Par exemple, écrivez le nombre –5. Le nombre 5 en code binaire ressemble à 0101. On remplace les bits par les bits opposés : 1010 et on en ajoute un : 1011. On additionne le résultat avec le nombre d'origine : 1011 + 0101 = 0000 (on ignore le transfert au cinquième chiffre) .

modulo 2 deux nombres binaires 0111 et 1011 :

D'autres opérations au niveau du bit sur les nombres binaires incluent la fonction ET et la fonction OU. La fonction ET donne un un uniquement si les bits correspondants des deux nombres d'origine sont tous deux un, sinon le résultat est -0. La fonction OU donne un lorsqu'au moins un des bits correspondants des nombres d'origine est 1, sinon le résultat est 0.

Quiconque communique avec un ordinateur ou un autre équipement numérique a rencontré des entrées mystérieuses comme 10FEF, qui ressemblent à une sorte de code pour les non-initiés. Que se cache-t-il derrière ces symboles ? Il s’avère que ce ne sont que des chiffres. Ceux qui utilisent l'hexadécimal

Systèmes numériques

Chaque écolier sait, ou du moins a entendu quelque part, que tous les nombres que nous utilisons habituellement forment. Il porte ce nom simplement parce qu'il ne contient que dix symboles différents (de 0 à 9). N'importe quel nombre dans notre système habituel peut être écrit avec leur aide. Cependant, il s’avère qu’il n’est pas toujours pratique de l’utiliser. Par exemple, lors de l'échange d'informations entre appareils numériques, il est plus simple d'utiliser un système numérique dans lequel il n'y a que deux chiffres : « 0 » - pas de signal - ou « 1 » - il y a un signal (tension ou autre). C'est ce qu'on appelle le binaire. Cependant, pour décrire les processus à l’intérieur de tels appareils qui l’utilisent, vous devrez prendre des notes trop longues et difficiles à comprendre. Par conséquent, le système de nombres hexadécimaux a été inventé.

Le concept de système hexadécimal

Pourquoi les appareils numériques utilisent-ils un système contenant seize symboles différents ? Comme vous le savez, les informations dans les ordinateurs sont transmises sous forme d'octets, qui contiennent généralement 8 bits. Une unité de données - un mot machine - comprend 2 octets, soit 16 bits. Ainsi, à l’aide de seize symboles différents, il est possible de décrire l’information qui constitue la plus petite particule de l’échange. Le système de numérotation hexadécimal comprend nos chiffres habituels (naturellement de 0 à 9), ainsi que les premières lettres (A, B, C, D, E, F). C'est à l'aide de ces symboles qu'il est d'usage d'écrire toute unité d'information. Vous pouvez effectuer n'importe quelle opération arithmétique avec eux. C'est-à-dire addition, soustraction, multiplication, division. Le résultat sera également un nombre hexadécimal.

Où est-il utilisé ?

Le système hexadécimal est utilisé pour enregistrer les codes d'erreur. Ils peuvent survenir lors du fonctionnement de divers produits logiciels. Par exemple, c'est ainsi que les erreurs du système d'exploitation sont codées. Chaque numéro est standard. Vous pouvez découvrir exactement quelle erreur s'est produite pendant le processus de travail en la déchiffrant à l'aide des instructions. De tels symboles sont également utilisés lors de l'écriture de programmes dans des langages de bas niveau, tels que l'assembleur. Le système de nombres hexadécimaux est également apprécié des programmeurs car ses composants peuvent très facilement être convertis en binaires, qui sont « natifs » de toute technologie numérique. Ces symboles sont également utilisés pour décrire les combinaisons de couleurs. De plus, absolument tous les fichiers présents sur l'ordinateur (textes, graphiques et même musique ou vidéo) sont présentés après diffusion sous forme de séquence. Il est plus pratique de visualiser la source sous forme de caractères hexadécimaux.

Bien entendu, n’importe quel nombre peut être écrit dans différents systèmes numériques. C'est décimal, binaire et hexadécimal. Pour traduire un mot de l'un d'eux à un autre, vous devez utiliser un service tel qu'un traducteur de système numérique, ou le faire vous-même à l'aide d'un algorithme spécifique.

Notation hexadécimale ("Hex")- un moyen pratique de représenter des valeurs binaires. Tout comme le système numérique décimal a une base de dix et le système numérique binaire a une base de deux, le système numérique hexadécimal a une base de seize.

Le système numérique en base 16 utilise les nombres 0 à 9 et les lettres A à F. La figure montre les valeurs décimales, binaires et hexadécimales équivalentes pour les nombres binaires 0000 à 1111. Nous trouvons plus facile d'exprimer une valeur comme une chiffre hexadécimal plutôt que quatre bits

Comprendre les octets

Étant donné que 8 bits (octets) constituent le regroupement binaire standard, les nombres binaires 00000000 à 11111111 peuvent être représentés en notation hexadécimale sous la forme de nombres 00 à FF. Les zéros non significatifs sont toujours affichés pour compléter la représentation sur 8 bits. Par exemple, la valeur binaire 0000 1010 en hexadécimal serait 0A.

Représentation des valeurs hexadécimales

Veuillez noter: Il est important de distinguer les valeurs hexadécimales des valeurs décimales pour les caractères 0 à 9, comme le montre la figure.

Les valeurs hexadécimales sont généralement représentées dans le texte par une valeur précédée de 0x (comme 0x73) ou en utilisant un indice de 16. Plus rarement, elles peuvent être suivies de la lettre H, comme 73H. Cependant, comme le texte en indice n'est pas reconnu sur la ligne de commande ou dans les environnements de programmation, ils sont précédés de « 0x » (zéro X) dans la représentation technique des nombres hexadécimaux. Par conséquent, les exemples ci-dessus seraient respectivement affichés sous la forme 0x0A et 0x73.

La notation hexadécimale est utilisée pour représenter les adresses MAC Ethernet et les adresses IP version 6.

Conversions hexadécimales

La conversion de nombres entre valeurs décimales et hexadécimales est simple, mais diviser ou multiplier rapidement par 16 n'est pas toujours pratique. Si de telles conversions sont nécessaires, il est généralement plus facile de convertir une valeur décimale ou hexadécimale en binaire, puis de convertir la valeur binaire en décimale ou hexadécimale, en fonction de ce que vous souhaitez obtenir.

Avec de la pratique, il est possible de reconnaître les configurations binaires qui correspondent aux valeurs décimales et hexadécimales. La figure montre ces modèles pour certaines valeurs de 8 bits.

De nombreux utilisateurs d’ordinateurs comprennent qu’un ordinateur fonctionne dans un système de nombres binaires. Traditionnellement, les états d'un système binaire sont représentés par les chiffres 0 et 1, bien que, plus précisément, chaque état indique la présence ou l'absence d'un signal, c'est-à-dire il serait plus correct d'appeler les états « off » et « on » , ou « non » et « oui ». L'état « off » ou « non » correspond au chiffre 0, et l'état « on » ou « oui » correspond au chiffre 1. Les utilisateurs ordinaires n'ont généralement pas besoin de comprendre complètement la structure de l'ordinateur, cependant, le binaire Le système numérique se fait sentir sous la forme de diverses restrictions basées sur des puissances de deux. Une version plus compacte du système binaire est appelée hexadécimal. Le nombre seize est la quatrième puissance de deux. Il s'ensuit que vous pouvez tout simplement convertir de longues séquences binaires de zéros et de uns en courts hexadécimaux. Pour ce faire, divisez simplement la séquence binaire en groupes de quatre chiffres (chiffres) en commençant par le chiffre le moins significatif (à droite) et remplacez chaque groupe par la valeur hexadécimale correspondante.

Le système hexadécimal est généralement utilisé pour faciliter la perception des données binaires, car les conversions du système hexadécimal au système binaire et inversement sont effectuées en remplaçant simplement des chaînes. L'ordinateur fonctionne exclusivement avec des séquences binaires, et la notation hexadécimale de cette séquence est quatre fois plus compacte, puisque ce système a la base 16 (2 16) et le binaire 2. La séquence binaire peut être assez lourde. Par exemple, écrire le nombre 513 nécessite dix chiffres binaires (1000000001), mais seulement trois en hexadécimal (201). Cependant, pour représenter un nombre hexadécimal, seize symboles différents sont nécessaires, au lieu des dix qui sont utilisés dans le système de nombres décimaux que nous connaissons. Les dix premiers caractères sont des caractères compris entre 0 et 9, les autres sont des lettres de l'alphabet latin allant de A à F. Les lettres sont généralement (mais pas toujours) écrites en majuscules (majuscules) en notation hexadécimale du nombre. Les dix premiers caractères (de 0 à 9) sont écrits de la même manière que les nombres du système numérique décimal et leur correspondent. Les lettres comprises entre A et F correspondent à des valeurs comprises entre 10 et 15.

Considérons la correspondance des nombres de 0 à 15 dans les systèmes de nombres hexadécimaux et binaires.

Notation décimale Notation hexadécimale Notation binaire
0 0 0000
1 1 0001
2 2 0010
3 3 0011
4 4 0100
5 5 0101
6 6 0110
7 7 0111
8 8 1000
9 9 1001
10 UN 1010
11 B 1011
12 C 1100
13 D 1101
14 E 1110
15 F 1111

Les entrées pour 10, 11, etc. dans les systèmes décimal, binaire et hexadécimal ne correspondent pas. Regardons un petit exemple. Prenons un nombre hexadécimal 1A5E. Pour convertir en binaire, remplacez simplement les chiffres hexadécimaux par les groupes binaires correspondants. Le résultat sera 0001 1010 0101 1110. Si nous supprimons les zéros insignifiants devant le nombre et l'écrivons sans séparateurs, nous obtenons 1101001011110. Pour la traduction inverse, nous divisons le nombre en groupes de quatre chiffres, en commençant par le plus bas ( sur le côté droit), et aussi pour plus de commodité, nous ajoutons des zéros insignifiants dans le groupe le plus élevé à 4 rangs. Nous obtenons 0001 1010 0101 1110. Remplacez les groupes par les valeurs hexadécimales correspondantes, nous obtenons 1A5E.

Pour convertir un nombre hexadécimal en représentation décimale, vous pouvez utiliser le schéma par lequel nous écrivons les nombres décimaux. Dans un nombre décimal, chaque chiffre représente la puissance de dix correspondante, en partant de zéro et en augmentant de droite à gauche. Par exemple, le nombre décimal 123 signifie 1*10 2 + 2*10 1 + 3*10 0 . En utilisant une méthode similaire, nous convertissons le nombre 1A5E au système numérique décimal. Dans le système numérique hexadécimal, ainsi que dans le système numérique décimal, chaque chiffre désigne la puissance correspondante du nombre seize, en partant de zéro et en augmentant de droite à gauche. Les caractères 1 et 5 en hexadécimal correspondent aux valeurs 1 et 5 en décimal, et les caractères A et E correspondent à 10 et 14. Alors 1A5E peut être représenté en décimal comme 1*16 3 + 10*16 2 + 5 *16 1 + 14*16 0 = 6750. Cependant, pour évaluer des nombres hexadécimaux, il n'est pas du tout nécessaire de les convertir en nombres décimaux. Les règles de comparaison, d'addition et de multiplication dans ce système sont les mêmes que dans le système décimal, l'essentiel est de ne pas oublier que chaque chiffre peut contenir des valeurs de 0 à 15. Pour convertir rapidement des nombres entre systèmes numériques, vous pouvez utiliser une calculatrice standard sous Windows, pour cela il suffit de Dans le mode avancé de la calculatrice, sélectionnez un système numérique, entrez-y un nombre et sélectionnez le système numérique souhaité dans lequel afficher le résultat.

Étant donné que les nombres hexadécimaux uniquement numériques se confondent facilement avec les nombres décimaux, ils sont généralement marqués de manière à indiquer clairement que la notation hexadécimale est utilisée. Les entrées hexadécimales sont généralement marquées soit en ajoutant un « h » minuscule à la fin, soit en ajoutant un préfixe « 0x » avant le nombre. Ainsi, le nombre hexadécimal 1A5E peut être écrit sous la forme 1A5Eh ou 0x1A5E, où un « h » final ou un « 0x » initial indique que la notation hexadécimale est utilisée.