Chapitre – 4
Systèmes numériques
Introduction
Dans la programmation de récupération de données ou toute autre programmation de dépannage de disque, il est très courant de devoir travailler avec plusieurs types de systèmes numériques en même temps pour effectuer une seule tâche ou même une très petite partie du travail, comme le calcul de positions spécifiques de MBR étendu en termes de CHS (cylindres, têtes et secteurs) ; Ces postes guident le programmeur tout au long de l'opération.
La plupart des nouveaux programmeurs rencontrent probablement des difficultés ou des confusions lors de la conversion de différents types de systèmes numériques entre eux lorsqu'ils essaient d'apprendre la programmation système en langage assembleur, où l'utilisation de systèmes numériques binaires et hexadécimaux est obligatoire.
Dans ce chapitre, nous aborderons de nombreux concepts importants, notamment les systèmes de nombres binaires, décimaux et hexadécimaux, ainsi que l'organisation des données binaires, comme la conversion de bits, de quartets, d'octets, de mots et de mots doubles, etc. et de nombreux autres sujets liés aux systèmes numériques.
La plupart des systèmes informatiques modernes ne représentent pas les valeurs numériques à l'aide du système décimal, mais utilisent généralement le système binaire ou le système numérique à complément à deux.
Quatre systèmes numériques sont couramment utilisés en programmation : binaire, octal, décimal et hexadécimal . Cependant, le plus souvent, nous rencontrerons des systèmes de nombres binaires, décimaux et hexadécimaux. Ces systèmes numériques diffèrent en fonction de leur nombre de base.
Chaque système numérique possède son propre nombre de base et son propre symbole de représentation. J'ai présenté ces quatre chiffres dans le tableau suivant :
Nom du système numérique |
Numéro de base |
Symbole utilisé pour représenter |
Pistes |
2 |
B |
Octal |
8 |
Question ou question |
Décimal |
10 |
D ou non |
Hexadécimal |
16 |
TEMPS |
Système de numération décimale
Le système numérique décimal utilise la base 10 et comprend les nombres de 0 à 9. Ne vous y trompez pas, il s'agit du système numérique commun que nous utilisons dans notre vie quotidienne pour les calculs. Les valeurs pondérées en puissance pour chaque position seront :
Donc si j'ai le nombre décimal 218 et que je veux le représenter de la manière ci-dessus, alors le nombre 218 sera représenté comme suit :
2 * 102 + 1 * 101 + 8 * 100
= 2 * 100 + 1 * 10 + 8 * 1
= 200 + 10 + 8
= 218
Voyons maintenant un exemple de nombre décimal fractionnaire. Disons que nous avons le nombre 821 128. Chaque chiffre à gauche de la virgule décimale représente une valeur de zéro à neuf, tandis qu'une puissance de dix est représentée par sa position dans le nombre (à partir de 0).
Les chiffres apparaissant à droite de la virgule décimale représentent la valeur de zéro à neuf multipliée par une puissance négative croissante de dix. Voyons comment :
8*102+2*101+1*100+1*10-1+2*10-2+8*10-3
= 8 * 100 + 2 * 10 + 1 * 1 + 1 * 0,1 + 2 * 0,01 + 8 * 0,001
= 800 + 20 + 1 + 0,1 + 0,02 + 0,008
= 821,128
Système de nombres binaires
La plupart des systèmes informatiques modernes fonctionnent aujourd’hui à l’aide de la logique binaire. L'ordinateur représente les valeurs à l'aide de deux niveaux de tension qui indiquent OFF ou ON en utilisant 0 et 1. Par exemple, une tension de 0 V est généralement représentée par un 0 logique et une tension de +3,3 V ou +5 V est représentée par un 1 logique. Ainsi, avec deux niveaux, nous pouvons représenter exactement deux valeurs différentes. Il peut s'agir de deux valeurs différentes, mais par convention nous utilisons les valeurs 0 et 1.
Puisqu’il existe une correspondance entre les niveaux logiques utilisés par un ordinateur et les deux chiffres utilisés dans le système numérique binaire, il n’est pas surprenant que les ordinateurs utilisent le système binaire.
Le système de numération binaire fonctionne comme le système de numération décimal, sauf que le système binaire utilise la base 2 et uniquement les chiffres 0 et 1 ; L'utilisation de tout autre chiffre rendra le nombre non valide.
Les valeurs pondérées pour chaque élément sont présentées comme suit :
Le tableau suivant montre la représentation d'un nombre binaire par rapport à un nombre décimal :
Nombre décimal |
Représentation binaire des nombres |
0 |
0000 |
1 |
0001 |
2 |
0010 |
3 |
0011 |
4 |
0100 |
5 |
0101 |
6 |
0110 |
7 |
0111 |
8 |
1000 |
9 |
1001 |
10 |
1010 |
11 |
1011 |
12 |
1100 |
13 |
1101 |
14 |
1110 |
15 |
1111 |
Habituellement, dans le cas de nombres décimaux, toutes les trois décimales sont séparées par une virgule pour rendre les nombres plus grands plus faciles à lire. Par exemple, il est beaucoup plus facile de lire un nombre 840.349.823 que 840349823.
S'inspirant de la même idée, il existe une convention similaire pour les nombres binaires, afin qu'ils soient plus faciles à lire, mais dans le cas des nombres binaires, nous ajouterons un espace tous les quatre chiffres en commençant par le chiffre le moins significatif à gauche de la virgule décimale.
Par exemple, si la valeur binaire est 1010011001101011, elle sera écrite 1010 0110 0110 1011.
Conversion de nombres binaires en nombres décimaux
Pour convertir un nombre binaire en nombre décimal, nous multiplions chaque chiffre par sa position pondérée et additionnons chacune des valeurs pondérées ensemble. Par exemple, la valeur binaire 1011 0101 représente :
1*27 + 0*26 + 1*25 + 1*24 + 0*23 + 1*22 + 0*21 + 1*20 = 1 * 128 + 0 * 64 + 1 * 32 + 1 * 16 + 0 * 8 + 1 * 4 + 0 * 2 + 1 * 1 = 128 + 0 + 32 + 16 + 0 + 4 + 0 + 1 = 181
Convertir décimal en binaire
Pour convertir un nombre décimal en son système binaire, la méthode générale consiste à diviser le nombre décimal par 2. Si le reste est 0, écrivez un 0 à côté. Si le reste est 1, écrivez un 1.
Ce processus continue en divisant le quotient par 2 et en éliminant le reste précédent jusqu'à ce que le quotient soit 0. Lors de la division, les restes qui représenteront l'équivalent binaire du nombre décimal sont écrits en commençant par le chiffre le moins significatif (à droite) et chaque nouveau chiffre est écrit sur le chiffre le plus significatif (à gauche) du chiffre précédent.
Prenons un exemple . Considérons le nombre 2671. La conversion binaire pour le nombre 2671 a été donnée dans le tableau suivant.
Division |
Quotient |
Repos |
Nombre binaire |
2671 / 2 |
1335 |
1 |
1 |
1335 / 2 |
667 |
1 |
11 |
667 / 2 |
333 |
1 |
111 |
333 / 2 |
166 |
1 |
1111 |
166 / 2 |
83 |
0 |
0 1111 |
83 / 2 |
41 |
1 |
10 1111 |
41 / 2 |
20 |
1 |
110 1111 |
20 / 2 |
10 |
0 |
0110 1111 |
10 / 2 |
5 |
0 |
0 0110 1111 |
5 / 2 |
2 |
1 |
10 0110 1111 |
2 / 2 |
1 |
0 |
010 0110 1111 |
1 / 2 |
0 |
1 |
Numéro de téléphone : 1010 0110 1111 |
Ce tableau est destiné à clarifier chaque étape de la conversion, cependant en pratique, pour obtenir une conversion plus simple et plus rapide, vous pouvez suivre la procédure suivante pour obtenir les résultats.
Soit 1980 un nombre décimal à convertir en son équivalent binaire. Ainsi, en suivant la méthode donnée dans le tableau, nous allons résoudre ce problème comme suit :
Lorsque nous organisons les restes selon le sens de la flèche, nous obtenons le nombre binaire équivalent au nombre décimal 1980 = 0111 1011 1100
Formats de nombres binaires
Nous écrivons généralement les nombres binaires sous la forme d’une séquence de bits. « Bit » est l'abréviation de « chiffres binaires » dans une machine. Il existe des limites de taille définies pour ces bits. Ces limitations de format ont été représentées dans le tableau suivant :
Nom |
Taille en bits |
Exemple |
Mordre |
1 |
1 |
À grignoter |
4 |
0101 |
Octet |
8 |
0000 0101 |
Mot |
16 |
0000 0000 0000 0101 |
Mot double |
32 |
0000 0000 0000 0000 0000 0000 0000 0000 0101 |
Nous pouvons ajouter autant de zéros non significatifs que nous le souhaitons sans modifier leur valeur dans aucune base numérique ; Cependant, nous ajoutons normalement des zéros non significatifs pour adapter le nombre binaire à la limite de taille souhaitée.
Par exemple, nous pouvons représenter le nombre 7 dans différents cas comme indiqué dans le tableau :
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Mordre | | | | | | | | | | | | | | 1 | 1 | 1 |
À grignoter | | | | | | | | | | | | | 0 | 1 | 1 | 1 |
Octet | | | | | | | | | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 |
Mot | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 |
Où le bit le plus à droite d'un nombre binaire est la position de bit zéro et chaque bit à gauche se voit attribuer le numéro de bit suivant, comme indiqué dans le tableau ci-dessus.
Le bit zéro est généralement appelé bit le moins significatif ou LSB et le bit le plus à gauche est généralement appelé bit le plus significatif ou MSB. Faites-nous part de ces formats de représentation :
La pièce
Un bit est la plus petite unité de données sur un ordinateur binaire. Un seul bit ne peut représenter qu'une seule valeur, soit 0 ou 1. Si vous utilisez un bit pour représenter une valeur booléenne (vrai/faux), ce bit représente vrai ou faux .
La morsure
Nibble s'inscrit particulièrement dans le domaine d'intérêt lorsque l'on parle de systèmes numériques, de nombres BCD (Binary Coded Decimal) et/ou hexadécimaux (base 16).
Un nibble est une collection de bits sur une limite de 4 bits. Il faut quatre bits pour représenter un seul chiffre BCD ou hexadécimal. Avec un seul nibble, nous pouvons représenter jusqu'à 16 valeurs distinctes.
Dans le cas des nombres hexadécimaux, les valeurs 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E et F sont représentées avec quatre bits. BCD utilise dix chiffres différents (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) et nécessite quatre bits.
En fait, toute valeur distincte de seize peut être représentée avec un nibble, mais les chiffres hexadécimaux et BCD sont les principaux éléments que nous pouvons représenter avec un seul nibble. La représentation bit à bit du nibble sera la suivante :
premier3 |
b2 |
le premier |
b0 |
L'octet
L'octet est la structure de données la plus importante utilisée par le microprocesseur 80x86. Un octet est composé de huit bits et constitue le plus petit élément de données adressable dans le microprocesseur. La mémoire principale et les adresses d'E/S de l'ordinateur sont toutes des adresses d'octets. Ainsi, le plus petit élément auquel les programmes sur un microprocesseur 80x86 peuvent accéder individuellement est une valeur de 8 bits.
Pour accéder à quelque chose de plus petit, vous devez lire l'octet contenant les données et masquer les bits indésirables. Nous ferons la programmation pour faire cela dans les prochains chapitres.
L’utilisation la plus importante d’un octet est de contenir un code de caractère. Les bits d'un octet sont numérotés du bit zéro (b0) au bit sept (b7) comme suit :
Le bit 0 (b0) est le bit de poids faible ou le moins significatif et le bit 7 (b7) est le bit de poids fort ou le plus significatif de l'octet.
Comme nous le voyons ici, un octet contient exactement deux nibbles, où les bits b0 à b3 constituent le nibble d'ordre inférieur et les bits b4 à b7 constituent le nibble d'ordre supérieur.
Étant donné qu’un octet contient exactement deux nibbles, les valeurs d’octet nécessitent deux chiffres hexadécimaux.
Étant donné que l'ordinateur moderne traditionnel est une machine adressable par octet, il est plus efficace de manipuler un octet entier plutôt qu'un seul bit ou quartet.
C'est pourquoi la plupart des programmeurs utilisent un octet entier pour représenter les types de données qui ne nécessitent pas plus de 256 éléments.
Puisqu'un octet contient huit bits, il peut représenter 28 ou 256 valeurs différentes car le nombre binaire maximal de 8 bits peut être 1111 1111 ce qui équivaut à 256 (décimal), donc généralement un octet est utilisé pour représenter les éléments suivants :
- valeurs numériques non signées comprises entre 0 et 255
- nombres signés compris entre -128 et +127
- Codes de caractères ASCII
- Et d'autres types de données spéciaux qui ne nécessitent pas plus de 256 valeurs différentes, car de nombreux types de données ont moins de 256 éléments, donc huit bits sont généralement suffisants.
Le mot
Un mot est un groupe de 16 bits . Mais traditionnellement, la limite d'un mot est définie comme 16 bits ou la taille du bus de données du processeur et un double mot est composé de deux mots. Ainsi, un mot et un double mot n'ont pas de taille fixe mais varient d'un système à l'autre en fonction du processeur. Cependant, pour une lecture conceptuelle, nous définirons un mot comme deux octets.
Lorsque nous voyons un mot au niveau du bit, il sera numéroté comme les bits d'un mot à partir du bit zéro (b0) jusqu'au bit quinze (b15). La représentation au niveau des bits sera la suivante :
Où le bit 0 est le LSB (bit le moins significatif) et le bit 15 est le MSB (bit le plus significatif). Lorsqu'il est nécessaire de faire référence à d'autres bits dans un mot, leur numéro de position de bit est utilisé pour les référencer.
De cette façon, un mot contient exactement deux octets tels que les bits b0 à b7 forment l'octet de poids faible et les bits b8 à b15 forment l'octet de poids fort. Avec un mot de 16 bits, nous pouvons représenter 216 (65536) valeurs différentes. Ces valeurs peuvent être les suivantes :
- Valeurs numériques non signées comprises entre 0 et 65 535.
- Valeurs numériques signées comprises entre -32 768 et +32 767
- Tout type de données ne comportant pas plus de 65 536 valeurs. De cette façon, les mots sont principalement utilisés pour :
- Valeurs de données entières de 16 bits
- Adresses mémoire 16 bits
- Tout système numérique nécessitant 16 bits ou moins
Le double mot
Un mot double est exactement comme son nom et est composé de deux mots. Donc une quantité de mot double est de 32 bits . Le mot double peut également être divisé en un mot d'ordre supérieur et un mot d'ordre inférieur, quatre octets ou huit quartets, etc.
De cette façon, le mot Double peut représenter tous les types de données différents. Cela peut être comme suit :
- Un double mot non signé compris entre 0 et 4 294 967 295,
- Un double mot signé dans la plage -2 147 483 648 à 2 147 483 647,
- Une valeur à virgule flottante de 32 bits
- Ou toute autre donnée nécessitant 32 bits ou moins.
Système de numération octal
Le système de numération octal était populaire dans les anciens systèmes informatiques, mais il est très rarement utilisé aujourd'hui. Cependant, nous prendrons un système octal idéal juste à titre indicatif.
Le système octal est basé sur le système binaire avec une limite de 3 bits. Le système de numération octale utilise la base 8 et n'inclut que les chiffres de 0 à 7. Ainsi, tout autre chiffre rendrait le nombre non valide.
Les valeurs pondérées pour chaque position sont présentées dans le tableau suivant :
(de base)puissance |
85 |
84 |
83 |
82 |
81 |
80 |
Valeur |
32768 |
4096 |
512 |
64 |
8 |
1 |
Conversion binaire en octal
Pour convertir un entier binaire en octal, nous suivons les deux étapes suivantes :
Tout d’abord, divisez le nombre binaire en sections de 3 bits, de LSB à MSB . Convertissez ensuite le nombre binaire 3 bits en son équivalent octal. Prenons un exemple pour mieux comprendre. Si on nous donne un nombre binaire, disons 11001011010001, à convertir au système numérique octal, nous appliquerons les deux étapes ci-dessus sur ce nombre comme suit :
Section de 3 bits d'un nombre binaire |
011 |
001 |
011 |
010 |
001 |
Nombre équivalent |
3 |
1 |
3 |
2 |
1 |
Par conséquent, le nombre octal, équivalent au nombre binaire 11001011010001, est 31321.
Conversion octale en binaire
Pour convertir n'importe quel entier octal en nombre binaire correspondant, nous suivons les deux étapes suivantes :
Nous convertissons d’abord le nombre décimal en son équivalent binaire sur 3 bits. Nous combinons ensuite les sections de 3 bits en supprimant les espaces. Prenons un exemple. Si nous avons un nombre entier octal 31321(Q) à convertir en son nombre binaire correspondant, nous appliquerons les deux étapes ci-dessus comme suit :
Nombre équivalent |
3 |
1 |
3 |
2 |
1 |
Section de 3 bits d'un nombre binaire |
011 |
001 |
011 |
010 |
001 |
Par conséquent, l' équivalent binaire du nombre octal 31321(Q) est 011 0010 1101 0001.
Conversion octale en décimale
Pour convertir un nombre octal en décimal, nous multiplions la valeur de chaque place par son poids octal et additionnons chaque valeur.
Prenons un exemple pour mieux comprendre. Supposons que nous ayons un nombre octal 31321Q à convertir en son nombre décimal correspondant. Nous allons donc suivre les étapes suivantes :
3*84 + 1*83 + 3*82 + 2*81 + 1*80 = 3*4096 + 1*512 + 3*64 + 2*8 + 1*1 = 12288 + 512 + 192 + 16 + 1 = 13009
Conversion décimale en octale
La conversion décimale en octale est un peu plus difficile. La méthode typique pour convertir du décimal en octal est la division répétée par 8. Pour cette méthode, nous divisons le nombre décimal par 8 et écrivons le reste à côté comme le chiffre le moins significatif. Ce processus continue en divisant le quotient par 8 et en écrivant le reste jusqu'à ce que le quotient soit 0.
Lors de la division, les restes, qui représenteront l'équivalent octal du nombre décimal, sont écrits à partir du chiffre le moins significatif (à droite) et chaque nouveau chiffre est écrit jusqu'au chiffre le plus significatif suivant (à gauche) du chiffre précédent.
Essayons de mieux le comprendre avec un exemple. Si nous avons un nombre décimal, disons 13009 (nous avons trouvé ce nombre décimal à partir de l'exemple précédent et en le reconvertissant en nombre octal, nous pouvons également vérifier l'exemple précédent), alors cette méthode a été décrite dans le tableau suivant :
Division |
Quotient |
Repos |
Nombre octal |
13009 / 8 |
1626 |
1 |
1 |
1626 / 8 |
203 |
2 |
21 |
203 / 8 |
25 |
3 |
321 |
25 / 8 |
3 |
1 |
1321 |
3 / 8 |
0 |
3 |
31321 |
Comme vous pouvez le voir, nous revenons au numéro d’origine. C’est à cela que nous devons nous attendre. Ce tableau a été utilisé pour comprendre la procédure. Répétons maintenant la même conversion pour comprendre la méthode à suivre dans la pratique pour faciliter le travail et également pour gagner du temps. En fait, les deux sont la même chose.
Si nous rangeons les restes selon le sens de la flèche, nous obtenons le nombre octal 31321, celui que nous attendions.
Système de numération hexadécimal
Les nombres hexadécimaux sont les plus couramment utilisés dans la récupération de données ou tout autre type de dépannage de disque ou de programmation d'analyse de disque, car les nombres hexadécimaux offrent les deux fonctionnalités suivantes :
Les nombres hexadécimaux sont très compacts. Et il est facile de convertir de l’hexadécimal au binaire et du binaire à l’hexadécimal. Lorsque nous calculons de nombreuses choses importantes comme le nombre de cylindres, de têtes et de secteurs d'un disque dur ou que nous utilisons des programmes d'édition de disque dur pour analyser différentes caractéristiques et problèmes, nous aurons besoin d'une bonne connaissance du système hexadécimal. Le système hexadécimal est basé sur le système binaire utilisant un nibble ou une limite de 4 bits.
Le système numérique hexadécimal utilise la base 16 et comprend uniquement les chiffres de 0 à 9 et les lettres A, B, C, D, E et F. Nous utilisons H avec le nombre pour indiquer n'importe quel nombre hexadécimal. Le tableau suivant montre la représentation de divers systèmes numériques, en les différenciant les uns des autres :
Pistes | Octal | Décimal | Hexagone |
0000B | 00Q | 00 | 00:00 heures |
0001B | 01Q | 01 | 01H |
0010B | 02Q | 02 | 02h00 |
0011B | 03Q | 03 | 03h00 |
0100B | 04Q | 04 | 04h00 |
0101B | 05Q | 05 | 05h00 |
0110B | 06Q | 06 | 06h00 |
0111B | 07Q | 07 | 07h00 |
1000 milliards | 10Q | 08 | 08h00 |
1001B | 11Q | 09 | 09h00 |
1010B | 12Q | 10 | 0AH |
1011B | 13Q | 11 | 0BH |
1100B | 14Q | 12 | 0CH |
1101B | 15Q | 13 | 0DH |
1110B | 16Q | 14 | 0EH |
1111B | 17Q | 15 | 0FH |
1 0000B | 20Q | 16 | 10h00 |
Ce tableau fournit toutes les informations dont vous pourriez avoir besoin pour convertir des valeurs décimales de 0 à 16 d'une base numérique à une autre.
Les valeurs pondérées pour chaque position pour les nombres hexadécimaux ont été présentées dans le tableau suivant :
Puissance (de base) |
163 |
162 |
161 |
160 |
Valeur |
4096 |
256 |
16 |
1 |
Convertir du binaire au hexadécimal
Pour convertir un nombre binaire au format hexadécimal, ajoutez d’abord des zéros non significatifs au nombre binaire situé à l’extrême gauche pour garantir que le nombre binaire contient des multiples de quatre bits. Ensuite, suivez les deux étapes suivantes :
Tout d’abord, divisez le nombre binaire en sections de 4 bits de LSB à MSB. Convertissez ensuite le nombre binaire 4 bits en son équivalent hexadécimal. Prenons un exemple pour mieux comprendre la méthode. Supposons que nous ayons un nombre binaire 100 1110 1101 0011 à convertir en son nombre hexadécimal correspondant. Nous appliquerons ensuite les deux étapes ci-dessus comme indiqué ci-dessous :
Section de nombre binaire à 4 bits |
0100 |
1110 |
1101 |
0011 |
Valeur hexadécimale |
4 |
ET |
D |
3 |
Par conséquent, la valeur hexadécimale correspondant au nombre binaire 100 1110 1101 0011 est 4ED3.
Convertir de l'hexadécimal au binaire
Pour convertir un nombre hexadécimal en nombre binaire, nous suivons les deux étapes suivantes :
Tout d’abord, convertissez le nombre hexadécimal en son équivalent binaire 4 bits. Ensuite, combinez les sections de 4 bits en supprimant les espaces. Pour mieux comprendre la procédure, prenons un exemple du nombre hexadécimal ci-dessus, c'est-à-dire 4ED3, et appliquons ces deux étapes comme suit
Valeur hexadécimale |
4 |
ET |
D |
3 |
Section de nombre binaire à 4 bits |
0100 |
1110 |
1101 |
0011 |
Ainsi, pour le nombre hexadécimal 4ED3, nous obtenons le nombre binaire correspondant = 0100 1110 1101 0011
C'est la réponse attendue.
Conversion de l'hexadécimal au décimal Pour convertir de l'hexadécimal au décimal, nous multiplions la valeur de chaque position par son poids hexadécimal et additionnons chaque valeur. Prenons un exemple pour mieux comprendre la procédure. Supposons que nous ayons un nombre hexadécimal 3ABE à convertir en son nombre décimal équivalent. La procédure sera donc la suivante : 3*163 + A*162 + B*161 + E*160 = 3* 4096 + 10* 256 + 11*16 + 14 = 12288 + 2560 + 176 + 14 = 15038
Par conséquent, le nombre décimal équivalent au nombre hexadécimal 3ABE est 15038.
Convertir décimal en hexadécimal
Pour convertir un nombre décimal en nombre hexadécimal, la méthode typique consiste à répéter la division par 16. Pour cette méthode, nous divisons le nombre décimal par 16 et écrivons le reste à côté comme le chiffre le moins significatif.
Ce processus continue en divisant le quotient par 16 et en écrivant le reste jusqu'à ce que le quotient soit 0. Lors de l'exécution de la division, les restes qui représenteront l'équivalent hexadécimal du nombre décimal sont écrits en commençant par le chiffre le moins significatif (à droite), et chaque nouveau chiffre est écrit jusqu'au chiffre le plus significatif suivant (à gauche) du chiffre précédent.
Apprenons cela avec un exemple. Prenons le nombre décimal 15038 que nous avons obtenu après la conversion ci-dessus. Avec cela, nous pouvons également contrôler la conversion ci-dessus et vice versa.
Division |
Quotient |
Repos |
Nombre hexadécimal |
15038 / 16 |
939 |
14 ( E H) |
ET |
939 / 16 |
58 |
11 ( BH ) |
ÊTRE |
58 / 16 |
3 |
10 ( UN H) |
ABE |
3 / 16 |
0 |
3 ( 3 heures) |
03ABE |
Nous obtenons ainsi le nombre hexadécimal 03ABE H, équivalent au nombre décimal 15038 et revenons ainsi au nombre d'origine. C’est à cela que nous devons nous attendre.
Le tableau ci-dessous peut vous aider à trouver rapidement la conversion d'un nombre hexadécimal en nombre décimal et vice versa dans la plage de 0 à 255 nombres décimaux.
Dans ce tableau carré, il y a 16 lignes, allant de 0 à A et il y a 16 colonnes également allant de 0 à A. À partir de ce tableau, vous pouvez trouver la valeur décimale de tout nombre hexadécimal compris entre 0H et FFH. Cela signifie que la valeur décimale du nombre doit être comprise entre 0 et 255 nombres décimaux.
- Trouvez la valeur décimale d'un nombre hexadécimal dans le tableau ci-dessus : Dans le tableau ci-dessus, le nombre de lignes représente le premier chiffre hexadécimal (chiffre hexadécimal gauche) et le nombre de colonnes représente le deuxième chiffre hexadécimal (chiffre hexadécimal droit) du nombre hexadécimal.
Prenons n’importe quel nombre hexadécimal, disons ACH, pour le convertir en son nombre décimal équivalent. Ensuite, nous verrons la valeur décimale dans la C-ième colonne de la A-ième ligne du tableau et nous obtiendrons la valeur décimale 172, qui est le nombre décimal équivalent pour le nombre hexadécimal ACH.
- Trouvez la valeur hexadécimale du nombre décimal dans le tableau ci-dessus : Dans le tableau ci-dessus, le nombre de lignes représente le premier chiffre hexadécimal (chiffre hexadécimal gauche) et le nombre de colonnes représente le deuxième chiffre hexadécimal (chiffre hexadécimal droit) du nombre hexadécimal. Ainsi, si vous avez un nombre décimal que vous souhaitez convertir en un nombre hexadécimal équivalent, recherchez le nombre dans le tableau et trouvez la valeur hexadécimale équivalente comme suit :
Valeur hexadécimale pour le nombre décimal = (Numéro de ligne) (Numéro de colonne)
Par exemple, si vous souhaitez trouver la valeur hexadécimale équivalente pour le nombre décimal 154, consultez la position du nombre dans le tableau. Le nombre 154 se trouve dans la neuvième ligne et colonne Ath du tableau. Ainsi, la valeur hexadécimale équivalente pour le nombre décimal 154 est 9AH.
Code ASCII
L'abréviation ASCII signifie American Standard Code for Information Interchange. Il s'agit d'une norme de codage pour les caractères, les nombres et les symboles qui est identique aux 128 premiers caractères du jeu de caractères ASCII mais qui diffère des caractères restants. Ces autres caractères sont généralement appelés caractères ASCII spéciaux ou caractères étendus définis par IBM.
Les 32 premiers caractères, qui sont des codes ASCII de 0 à 1FH, forment un ensemble spécial de caractères non imprimables. Ces caractères sont appelés caractères de contrôle car ils effectuent diverses opérations de contrôle d'imprimante et d'affichage plutôt que d'afficher des symboles. Ces caractères ont été répertoriés dans la table des caractères ASCII fournie dans ce chapitre. Ces caractères de contrôle ont les significations suivantes :
ZÉRO (zéro) :
Aucun personnage. Il est utilisé pour remplir le temps ou l'espace sur la surface (comme la surface du plateau) du périphérique de stockage où il n'y a pas de données. Nous utiliserons ce caractère lors de la programmation des effaceurs de données (destructifs et non destructifs) pour effacer l'espace non alloué afin que les données supprimées ne puissent être récupérées par personne ni par aucun programme.
SOH (Début de la Direction) :
Ce caractère est utilisé pour indiquer le début de la direction, qui peut contenir des informations d'adresse ou d'itinéraire.
TX (début du texte) :
Ce caractère est utilisé pour indiquer le début du texte et donc aussi la fin du titre.
ETX (fin du texte) :
Ce caractère est utilisé pour terminer un texte commencé par STX.
EOT (Fin de Transmission) :
Ce caractère indique la fin de la transmission, qui peut avoir inclus un ou plusieurs « tests » avec leurs en-têtes associés.
ENQ (Demande d'information) :
Il s’agit d’une demande de réponse d’une station distante. Il s'agit d'une demande d'identification d'une station.
ACK (Reconnaissance) :
Il s'agit d'un caractère transmis par un appareil récepteur en réponse affirmative à une ponceuse. Il est utilisé comme réponse positive aux messages d’enquête.
BEL (Cloche) :
Il est utilisé lorsqu’il est nécessaire d’attirer l’attention humaine. Il peut contrôler des dispositifs d'alarme ou d'avertissement. Vous pouvez entendre une tonalité de cloche provenant des haut-parleurs connectés à votre ordinateur lorsque vous tapez ce caractère dans l'invite de commande comme suit :
C:\> Écho ^G
Ici, ^G est imprimé via la combinaison de touches Ctrl + G.
BS (touche retour) :
Ce caractère indique le mouvement du mécanisme d'impression ou du curseur d'affichage vers l'arrière d'une position.
HT (tabulation horizontale) :
Indique le mouvement du mécanisme d'impression ou du curseur d'affichage vers l'avant jusqu'à la prochaine position d'arrêt ou « Tab » pré-attribuée.
LF (saut de ligne) :
Indique le mouvement du mécanisme d'impression ou du curseur d'affichage jusqu'au début de la ligne suivante.
VT (carte verticale) :
Indique le mouvement du mécanisme d'impression ou du curseur d'affichage vers la ligne suivante d'une série de lignes d'impression pré-attribuées.
FF (flux de page) :
Indique le mouvement du mécanisme d'impression ou du curseur d'affichage vers la position de départ de la page suivante, depuis ou vers l'écran suivant.
CR (retour chariot) :
Indique le mouvement du mécanisme d'impression ou du curseur d'affichage vers la position initiale de la même ligne.
SO (Changement de direction) :
Indique que les combinaisons de codes suivantes doivent être interprétées comme étant en dehors du jeu de caractères standard jusqu'à ce qu'un caractère de décalage vers l'intérieur soit atteint.
Je (change) :
Indique que les combinaisons de codes suivantes doivent être interprétées conformément au jeu de caractères standard.
DLE (échappement de liaison de données) :
C'est un caractère qui modifie le sens d'un ou plusieurs caractères adjacents ultérieurs. Il peut fournir un contrôle supplémentaire ou permettre l'envoi de caractères de données contenant n'importe quelle combinaison de bits.
DC1, DC2, DC3 et DC4 (commandes de l'appareil) :
Il s'agit de caractères permettant de contrôler des appareils auxiliaires ou des fonctions spéciales du terminal.
NAK (Reconnaissance Négative) :
Il s'agit d'un caractère transmis par un appareil récepteur en guise de réponse négative à un émetteur. Il est utilisé comme réponse négative au message du sondage.
SYN (synchrone/inactif) :
il est utilisé par un système de transmission synchrone pour réaliser la synchronisation lorsqu'aucune donnée n'est envoyée ; Un système de transmission synchrone peut envoyer des caractères SYN en continu.
ETB (Fin de bloc de transmission) :
Ce caractère indique la fin d'un bloc de données à des fins de communication. Il est utilisé pour bloquer des données, où la structure du bloc n'est pas nécessairement liée au format de traitement.
CAN (Annuler) : indique que les données qui le précèdent dans un message ou un bloc doivent être ignorées, généralement parce qu'une erreur a été détectée.
EM (Fin de support) : indique la fin physique d'une bande, d'une surface (généralement un plateau de disque) ou d'un autre support, ou la fin de la partie requise ou utilisée du support.
SUB (Substitute) : est un substitut à un caractère incorrect ou invalide.
ESC (Escape) : il s'agit d'un caractère destiné à fournir une extension de code, car il fournit une signification alternative à un nombre spécifié de caractères suivants.
FS (File Separator) : ce caractère est utilisé comme caractère séparateur de fichiers.
GS (séparateur de groupe) : Il est utilisé comme caractère séparateur de groupe.
RS (Record Separator) : Il est utilisé comme caractère séparateur d'enregistrement.
États-Unis (séparateur uni) :
Il s'agit d'un caractère séparateur joint.
Le deuxième groupe de 32 codes de caractères ASCII comporte divers symboles de ponctuation, caractères spéciaux et chiffres numériques. Les personnages les plus remarquables de ce groupe sont les suivants :
caractère espace (code ASCII 20H) chiffres numériques de 0 à 9 (codes ASCII de 30h à 39h) symboles mathématiques et logiques
SP (Espace) :
Il s'agit d'un caractère non imprimable utilisé pour séparer les mots, pour déplacer le mécanisme d'impression ou pour afficher le curseur vers l'avant d'une position.
Le troisième groupe de 32 caractères ASCII est le groupe de caractères alphabétiques majuscules. Les codes ASCII pour les caractères A à Z sont compris entre 41H et 5AH. Comme il n'y a que 26 caractères alphabétiques différents, les six codes restants contiennent divers symboles spéciaux.
Le quatrième groupe de 32 codes de caractères ASCII se compose de symboles alphabétiques minuscules, de cinq symboles spéciaux supplémentaires et d'un autre caractère de contrôle de suppression.
DE (Supprimer) :
Il est utilisé pour supprimer les caractères indésirables, ou plutôt, pour les éliminer.
Deux tableaux ultérieurs ont été présentés, représentant les codes ASCII et les caractères étendus. Le premier tableau représente les quatre groupes de différents types de caractères décrits. Ce tableau est une représentation des données et d'un tableau ASCII comme indiqué ci-dessous :
Représentation des données et tableau des codes ASCII :
HEXAGONE | DÉC. | CHR | CTRL |
---|
00 | 0 | NUL | ^@ |
01 | 1 | SOH | ^Un |
02 | 2 | STX | ^B |
03 | 3 | ETX | ^C |
04 | 4 | Fin du mois | ^D |
05 | 5 | Demander | ^E |
06 | 6 | Reconnaissance | ^E |
07 | 7 | BON | ^S |
08 | 8 | Licence | ^E |
09 | 9 | Hauteur | ^Je |
0A | 10 | LF | ^J |
0B | 11 | Vermont | SALUT! |
0 °C | 12 | FF | ^L |
0D | 13 | CR | ^M |
0E | 14 | COMME | ^N |
0F | 15 | ET | ^O |
10 | 16 | DEUXIÈME | ^P |
11 | 17 | DC1 | ^Q |
12 | 18 | DC2 | ^R |
13 | 19 | DC3 | ^S |
14 | 20 | DC4 | ^T |
15 | 21 | RECHERCHÉ | ^U |
16 | 22 | SON | ^V |
17 | 23 | ETB | ^En fait |
18 | 24 | BONBONS | ^X |
19 | 25 | DANS | ^E |
1A | 26 | SOUS | ^Z |
1B | 27 | ÉCHAP |
1C | 28 | Vente au détail |
1D | 29 | GS |
1E | 30 | RS |
1F | 31 | NOUS |
HEXAGONE | DÉC. | CHR |
---|
20 | 32 | SP |
21 | 33 | ! |
22 | 34 | " |
23 | 35 | # |
24 | 36 | $ |
25 | 37 | % |
26 | 38 | Et |
27 | 39 | ' |
28 | 40 | ( |
29 | 41 | ) |
2A | 42 | * |
2B | 43 | + |
2C | 44 | , |
2D | 45 | - |
2E | 46 | . |
2F | 47 | / |
30 | 48 | 0 |
31 | 49 | 1 |
32 | 50 | 2 |
33 | 51 | 3 |
34 | 52 | 4 |
35 | 53 | 5 |
36 | 54 | 6 |
37 | 55 | 7 |
38 | 56 | 8 |
39 | 57 | 9 |
3A | 58 | : |
3B | 59 | ; |
3C | 60 | < |
3D | 61 | = |
3E | 62 | > |
3F | 63 | ? |
HEXAGONE | DÉC. | CHR |
---|
40 | 64 | @ |
41 | 65 | UN |
42 | 66 | B |
43 | 67 | C |
44 | 68 | D |
45 | 69 | ET |
46 | 70 | F |
47 | 71 | G |
48 | 72 | H |
49 | 73 | je |
4A | 74 | J |
4B | 75 | ET |
4C | 76 | LE |
4D | 77 | M |
4E | 78 | N |
4F | 79 | LE |
50 | 80 | P |
51 | 81 | Q |
52 | 82 | R |
53 | 83 | S |
54 | 84 | T |
55 | 85 | DANS |
56 | 86 | Dans |
57 | 87 | DANS |
58 | 88 | X |
59 | 89 | ET |
5A | 90 | AVEC |
5B | 91 | [ |
5C | 92 | \ |
5D | 93 | ] |
5E | 94 | ^ |
5F | 95 | _ |
HEXAGONE | DÉC. | CHR |
---|
60 | 96 | ` |
61 | 97 | UN |
62 | 98 | B |
63 | 99 | C |
64 | 100 | D |
65 | 101 | ET |
66 | 102 | F |
67 | 103 | G |
68 | 104 | H |
69 | 105 | je |
6A | 106 | J |
6B | 107 | je |
6C | 108 | le |
6D | 109 | M |
6E | 110 | N |
6F | 111 | LE |
70 | 112 | P |
71 | 113 | Q |
72 | 114 | R |
73 | 115 | S |
74 | 116 | T |
75 | 117 | Dans |
76 | 118 | Dans |
77 | 119 | Dans |
78 | 120 | X |
79 | 121 | ET |
7A | 122 | Avec |
7B | 123 | {[} |
7C | 124 | | |
7D | 125 | } |
7E | 126 | ~ |
7F | 127 | DE LA |
Le tableau suivant présente l'ensemble des 128 caractères ASCII spéciaux souvent appelés caractères ASCII étendus :
HEXAGONE | DÉC. | CHR |
---|
80 | 128 | Quoi |
81 | 129 | euh |
82 | 130 | ET |
83 | 131 | UN |
84 | 132 | UN |
85 | 133 | a |
86 | 134 | À |
87 | 135 | Quoi |
88 | 136 | Vouloir |
89 | 137 | S |
8A | 138 | Et |
8B | 139 | je |
8C | 140 | Q |
8D | 141 | Dans |
8E | 142 | UN |
8F | 143 | OH |
90 | 144 | ET |
91 | 145 | OH |
92 | 146 | Oh, oh |
93 | 147 | Parapluie |
94 | 148 | Lui |
95 | 149 | NON |
96 | 150 | ET |
97 | 151 | ù |
98 | 152 | ET |
99 | 153 | LUI |
9A | 154 | je |
9B | 155 | ¢ |
9C | 156 | £ |
9D | 157 | ¥ |
9E | 158 | ₧ |
9F | 159 | ƒ |
A0 | 160 | SUR |
A1 | 161 | Dans |
Le 2ème | 162 | depuis |
L'A3 | 163 | hein |
La4 | 164 | N |
HEXAGONE | DÉC. | CHR |
---|
Le 5ème | 165 | N |
L'A6 | 166 | ª |
L'A7 | 167 | º |
A8 | 168 | ¿ |
L'A9 | 169 | ⌐ |
AAA | 170 | ¬ |
Un B | 171 | ½ |
Colombie-Britannique | 172 | ¼ |
À | 173 | ¡ |
MAIS | 174 | « |
DEPUIS | 175 | » |
B0 | 176 | ░ |
B1 | 177 | ▒ |
Le B2 | 178 | ▓ |
Oui3 | 179 | │ |
Si4 | 180 | ┤ |
Si5 | 181 | ╡ |
Si6 | 182 | ╢ |
Si7 | 183 | ╖ |
Si8 | 184 | ╕ |
B9 | 185 | ╣ |
PAS | 186 | ║ |
BB | 187 | ╗ |
Colombie-Britannique | 188 | ╝ |
BD | 189 | ╜ |
ÊTRE | 190 | ╛ |
Garçon | 191 | ┐ |
C0 | 192 | └ |
C1 | 193 | ┴ |
C2 | 194 | ┬ |
C3 | 195 | ├ |
C4 | 196 | ─ |
C5 | 197 | ┼ |
C6 | 198 | ╞ |
C7 | 199 | ╟ |
C8 | 200 | ╚ |
C9 | 201 | ╔ |
HEXAGONE | DÉC. | CHR |
---|
QUE | 202 | ╩ |
CB | 203 | ╦ |
CC | 204 | ╠ |
CD | 205 | ═ |
CE | 206 | ╬ |
CF | 207 | ╧ |
D0 | 208 | ╨ |
Le 1er | 209 | ╤ |
Le D2 | 210 | ╥ |
Le D3 | 211 | ╙ |
Jour 4 | 212 | ╘ |
D5 | 213 | ╒ |
Jour 6 | 214 | ╓ |
Jour 7 | 215 | ╫ |
Jour 8 | 216 | ╪ |
Jour 9 | 217 | ┘ |
ET | 218 | ┌ |
BD | 219 | █ |
district fédéral de Columbia | 220 | ▄ |
GG | 221 | ▌ |
DEPUIS | 222 | ▐ |
DF | 223 | ▀ |
E0 | 224 | UN |
E1 | 225 | SS |
E2 | 226 | Avec |
E3 | 227 | N |
E4 | 228 | Avec |
E5 | 229 | avec |
E6 | 230 | µ |
E7 | 231 | T |
E8 | 232 | F |
E9 | 233 | je |
OUI | 234 | Pensée |
EB | 235 | G |
Union européenne | 236 | ∞ |
ET | 237 | F |
ET ET | 238 | ET |
HEXADÉCIMAL | DÉCEMBRE | Ressources humaines |
---|
SI | 239 | ∩ |
C0 est | 240 | ≡ |
Formule 1 | 241 | ± |
Le F2 | 242 | ≥ |
La F3 | 243 | ≤ |
F4 | 244 | ⌠ |
F5 | 245 | ⌡ |
F6 | 246 | ÷ |
F7 | 247 | ≈ |
F8 | 248 | ° |
F9 | 249 | ∙ |
MAIS | 250 | · |
Page Facebook | 251 | √ |
FC | 252 | ⁿ |
FD | 253 | ² |
EF | 254 | ■ |
FF | 255 | |
Quelques termes importants du système numérique qui sont souvent utilisés pour représenter et stocker des données
Le tableau suivant montre les différents préfixes utilisés comme préfixes fractionnaires et augmentatifs :
Octet:
L’utilisation la plus importante d’un octet est de stocker un code de caractère. Nous en avons déjà parlé auparavant.
Kilooctet
Techniquement, un kilo-octet équivaut à 1 024 octets, mais il est souvent utilisé à tort comme synonyme de 1 000 octets. Dans les systèmes décimaux, le kilo est égal à 1000, mais dans les systèmes binaires, le kilo est égal à 1024 (210).
Un kilo-octet est généralement désigné par K ou Ko. Pour faire la distinction entre le K décimal (1000) et le K binaire (1024), la norme IEEE (Institute of Electrical and Electronics Engineers) a proposé de suivre la convention consistant à utiliser la lettre minuscule k pour le kilo décimal et la lettre majuscule K pour le kilo binaire, mais cette convention n'est pas du tout strictement respectée.
Mégaoctet
Un mégaoctet est utilisé pour décrire un stockage de données égal à 1 048 576 (220) octets, mais lorsqu'il est utilisé pour décrire des taux de transfert de données, tels que Mo/s, il fait référence à un million d'octets. Le mégaoctet est généralement abrégé en M ou Mo.
Gigaoctet
Un gigaoctet est utilisé pour décrire un espace de stockage de 1 073 741 824 (230) octets, et un gigaoctet équivaut à 1 024 mégaoctets. Gigaoctet est généralement abrégé en G ou GB.
Téraoctet
Un téraoctet équivaut à 1 099 511 627 776 (240) octets, soit environ 1 000 milliards d’octets. Un téraoctet est parfois décrit comme 1 012 (1 000 000 000 000) octets, ce qui équivaut exactement à un billion.
Pétaoctet
Un pétaoctet est décrit comme 1 125 899 906 842 624 (250) octets. Un pétaoctet équivaut à 1 024 téraoctets.
Exaoctet
Un exaoctet est décrit comme 1 152 921 504 606 846 976 (260) octets. Un exaoctet équivaut à 1 024 pétaoctets.
Zettaoctet
Un zettaoctet est décrit comme 1 180 591 620 717 411 303 424 (270) octets, ce qui équivaut approximativement à 1 021 (1 000 000 000 000 000 000 000) octets. Un zettaoctet équivaut à 1,024 exaoctet.
Yottaoctet
Un yottaoctet est décrit comme 1 208 925 819 614 629 174 706 176 (280) octets, ce qui équivaut approximativement à 1 024 (1 000 000 000 000 000 000 000 000) octets. Un yottaoctet équivaut à 1,024 zettaoctet.
Conditions générales de stockage des données
Différents noms sont utilisés pour indiquer les termes donnés ci-dessus pour différents groupes de bits de données. Le tableau suivant répertorie certains des plus couramment utilisés :
Expiration |
Nombre de bits |
Page / Numéro / Drapeau |
1 |
Morsure / Morsure |
4 |
Octet/Caractère |
8 |
Mot |
16 |
Mot double / Mot long |
32 |
Mot très long |
64 |