Chapitre – 4
Systèmes de nombres
Introduction
Il est très courant dans la programmation de récupération de données ou dans toute autre programmation de dépannage de disque de gérer simultanément les différents types de systèmes de nombres pour effectuer une seule tâche ou même un très petit travail comme le calcul des emplacements spécifiques des MBR étendus. ) en termes de CHS (Cylindres, Têtes et Secteurs) et ces emplacements guident le programmeur tout au long de la ou des opérations.
La plupart des programmeurs débutants rencontrent probablement le problème ou la confusion lors de la conversion de différents types de systèmes de nombres les uns aux autres lorsqu'ils tentent d'apprendre la programmation au niveau système basée sur le langage d'assemblage et lorsque l'utilisation des systèmes de nombres binaires et hexadécimaux est indispensable.
Dans ce chapitre, nous aborderons de nombreux concepts importants, notamment les systèmes de numérotation binaire, décimal, hexadécimal, ainsi que l'organisation des données binaires telles que la conversion de bits, de quartets, d'octets, de mots et de mots doubles, etc., ainsi que de nombreux autres sujets connexes. des systèmes de numération.
La plupart des systèmes informatiques modernes ne représentent pas les valeurs numériques en utilisant le système décimal, mais ils utilisent généralement un système de numérotation binaire ou en complément à 2.
Il existe quatre bases de nombres couramment utilisées en programmation, Binaire, octal, décimal et hexadécimal. Cependant, la plupart du temps, nous rencontrerons des systèmes de nombres binaires, décimaux et hexadécimaux. Ces systèmes de numération ont été différenciés selon leur numéro de base.
Chaque système de numérotation a son propre numéro de base et son propre symbole de représentation. J'ai présenté ces quatre chiffres dans le tableau suivant :
Name of Number System |
Base Number |
Symbol Used for Representation |
Binary |
2 |
B |
Octal |
8 |
Q or O |
Decimal |
10 |
D or None |
Hexadecimal |
16 |
H |
Système de numération décimale
Le système de nombre décimal utilise la base 10 et comprend les chiffres de 0 à 9. Ne vous y trompez pas, c'est le système de nombre commun que nous utilisons dans notre vie quotidienne pour calculer les choses. Les valeurs pondérées par les puissances pour chaque position seront les suivantes :
Ainsi, si j'ai un nombre décimal 218 et que je veux le représenter de la manière ci-dessus, le nombre 218 sera représenté de la manière suivante :
2 * 102 + 1 * 101 + 8 * 100
= 2 * 100 + 1 * 10 + 8 * 1
= 200 + 10 + 8
= 218
Prenons maintenant un exemple de n'importe quel nombre décimal fractionnaire. Soit un numéro 821.128. Chaque chiffre apparaissant à gauche de la virgule représente une valeur comprise entre zéro et neuf et la puissance de dix est représentée par sa position dans le nombre (en partant de 0).
Les chiffres apparaissant à droite de la virgule décimale représentent une valeur comprise entre zéro et neuf fois 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 numération binaire
Aujourd'hui, la plupart des systèmes informatiques modernes fonctionnent en logique binaire. L'ordinateur représente les valeurs à l'aide de deux niveaux de tension qui indiquent soit OFF soit ON en utilisant 0 et 1. Par exemple, la tension 0V est généralement représentée par le 0 logique et la tension +3,3 V ou +5V est représentée par le 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 l'ordinateur et les deux chiffres utilisés dans le système de numérotation binaire, il n'est pas surprenant que les ordinateurs utilisent le système binaire.
Le système de nombre binaire fonctionne comme le système de nombre décimal sauf que le système de nombre binaire utilise la base 2 et inclut uniquement les chiffres 0 et 1 et l'utilisation de tout autre chiffre ferait du nombre un nombre binaire invalide.
Les valeurs pondérées pour chaque position sont représentées comme suit :
Le tableau suivant montre la représentation des nombres binaires par rapport aux nombres décimaux :
Decimal Number |
Binary Number Representation |
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, tous les trois chiffres décimaux sont séparés par une virgule pour faciliter la lecture des grands nombres. 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'il soit plus facile de lire les nombres binaires, mais dans le cas des nombres binaires, nous ajouterons un espace tous les quatre chiffres à partir du chiffre le moins significatif sur à gauche de la virgule décimale.
Par exemple si la valeur binaire est 1010011001101011, elle s'écrira 1010 0110 0110 1011.
Conversion de nombre binaire en nombre décimal
Pour convertir le 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
Conversion décimal en nombre binaire
Pour convertir n'importe quel nombre décimal en son système de numération binaire, la méthode générale consiste à diviser le nombre décimal par 2, si le reste est 0, sur le côté écrivez un 0. Si le reste est 1, écrivez un 1.
Ce processus se poursuit en divisant le quotient par 2 et en supprimant le reste précédent jusqu'à ce que le quotient soit égal à 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 au chiffre le plus significatif (à gauche) du chiffre précédent.
Prenons un exemple. Considérez le nombre 2671. La conversion binaire pour le nombre 2671 a été donnée dans le tableau suivant.
Division |
Quotient |
Remainder |
Binary Number |
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 |
1010 0110 1111 |
Ce tableau est destiné à clarifier chaque étape de la conversion, mais dans la pratique et pour obtenir la facilité et la rapidité de la conversion, vous pouvez suivre la manière suivante pour obtenir les résultats.
Soit 1980 un nombre décimal quelconque à convertir en son équivalent binaire. En suivant la méthode indiquée dans le tableau, nous allons résoudre ce problème de la manière suivante :
Lorsque l'on range les restes selon le sens de la flèche, on obtient le nombre binaire équivalent au nombre décimal 1980 = 0111 1011 1100
Formats de nombre binaire
En règle générale, nous écrivons les nombres binaires sous la forme d'une séquence de bits. Les "bits" sont l'abréviation de "chiffres binaires" dans une machine. Il existe des limites de format définies pour ces bits. Ces limites de format ont été représentées dans le tableau suivant :
Name |
Size in bits |
Example |
Bit |
1 |
1 |
Nibble |
4 |
0101 |
Byte |
8 |
0000 0101 |
Word |
16 |
0000 0000 0000 0101 |
Double Word |
32 |
0000 0000 0000 0000 0000 0000 0000 0101 |
Nous pouvons ajouter autant de zéros non significatifs que nous le souhaitons sans modifier sa valeur dans une base numérique, mais nous ajoutons normalement des zéros non significatifs pour ajuster le nombre binaire à une limite de taille souhaitée.
Par exemple, nous pouvons représenter le chiffre 7 comme 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 |
Bit |
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
1 |
1 |
Nibble |
|
|
|
|
|
|
|
|
|
|
|
|
0 |
1 |
1 |
1 |
Byte |
|
|
|
|
|
|
|
|
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
Word |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
Où le bit le plus à droite dans un nombre binaire est la position de bit zéro et chaque bit à gauche reçoit le numéro de bit successif suivant, comme indiqué dans le tableau ci-dessus.
Le bit zéro est généralement appelé le bit le moins significatif ou LSB et le bit le plus à gauche est généralement appelé le bit le plus significatif ou MSB. Faites-nous part de ces formats de représentation :
Le mors
Un bit est la plus petite unité de données sur un ordinateur binaire. Un seul bit est capable de représenter une seule valeur, 0 ou 1. Si vous utilisez un bit pour représenter une valeur booléenne (Vrai/Faux), alors ce bit représente vrai ou faux.
Le grignotage
Le Nibble vient particulièrement dans le domaine d'intérêt lorsque nous parlons des systèmes de numération, BCD (Binary Coded Decimal) ou/et nombres hexadécimaux (base 16).
Un quartet 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 quartet, on peut 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 par 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, seize valeurs distinctes peuvent être représentées avec un quartet, mais les chiffres hexadécimaux et BCD sont les principaux éléments que nous pouvons représenter avec un seul quartet. La représentation au niveau du bit du quartet sera la suivante :
L'octet
L'octet est la structure de données la plus importante utilisée par le microprocesseur 80x86. Un octet se compose de huit bits et est 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 et donc le plus petit élément auquel un programme de microprocesseur 80x86 peut 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 ce faire 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 bit le moins significatif et le bit 7 (b7) est le bit de poids fort ou le bit le plus significatif de l'octet.
Comme ici, nous voyons qu'un octet contient exactement deux quartets où les bits b0 à b3 comprennent le quartet de poids faible et les bits b4 à b7 forment le quartet de poids fort.
Étant donné qu'un octet contient exactement deux quartets, les valeurs d'octet nécessitent deux chiffres hexadécimaux.
Comme l'ordinateur moderne traditionnel est une machine adressable par octet, il s'avère plus efficace de manipuler un octet entier qu'un bit ou un quartet individuel.
C'est la raison pour laquelle 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). Par conséquent, un octet est généralement utilisé pour représenter ce qui suit :
- 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 ne nécessitant pas plus de 256 valeurs différentes, car de nombreux types de données comportent moins de 256 éléments. Par conséquent, huit bits suffisent généralement.
La Parole
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 pour le processeur et un double mot correspond à deux mots. Par conséquent, un mot et un double mot n'ont pas une 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 en commençant par le bit zéro (b0) jusqu'au quinze (b15). La représentation au niveau du bit sera la suivante :
Où le bit 0 est le bit LSB (bit le moins significatif) et le bit 15 est le bit MSB (bit le plus significatif). Lorsqu'il est nécessaire de référencer les autres bits dans un mot, leur numéro de position de bit est utilisé pour les référencer.
De cette manière, un mot contient exactement deux octets tels que du bit b0 au bit b7 forment l'octet de poids faible et les bits b8 à b15 forment l'octet de poids fort. Avec un mot de 16 bits, on peut représenter 216 (65536) valeurs différentes. Ces valeurs peuvent être les suivantes :
- Les valeurs numériques non signées comprises entre 0 et 65 535.
- Les valeurs numériques signées comprises entre -32 768 et +32 767
- Tout type de données ne contenant pas plus de 65 536 valeurs. De cette façon, les mots sont principalement utilisés pour :
- Valeurs de données entières 16 bits
- Adresses mémoire 16 bits
- Tout système numérique nécessitant 16 bits ou moins
Le double mot
Un double mot correspond exactement à son nom et correspond à deux mots. Par conséquent, une quantité de mots doubles est de 32 bits. Le mot double peut également être divisé en un mot de poids fort et un mot de poids faible, quatre octets ou huit quartets, etc.
De cette manière, le mot double peut représenter toutes sortes de données différentes. Il peut s'agir de :
- Un mot double non signé compris entre 0 et 4 294 967 295,
- Un double mot signé compris entre -2 147 483 648 et 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 octale
Le système de numération octale était populaire dans les anciens systèmes informatiques, mais il est très rarement utilisé aujourd'hui. Cependant nous prendrons un idéal du système octal juste pour la connaissance.
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. De cette façon, tout autre chiffre ferait du nombre un nombre octal invalide.
Les valeurs pondérées pour chaque position sont les suivantes indiquées dans le tableau :
(base)power |
85 |
84 |
83 |
82 |
81 |
80 |
Value |
32768 |
4096 |
512 |
64 |
8 |
1 |
Conversion binaire en octal
Pour convertir un nombre entier binaire en octal, nous suivons les deux étapes suivantes :
Commencez par diviser le nombre binaire en sections de 3 bits du LSB au MSB. Et puis convertissez le nombre binaire 3 bits en son équivalent octal. Prenons un exemple pour mieux le comprendre. Si nous avons donné un nombre binaire, disons 11001011010001 à convertir en système de nombre octal, nous appliquerons les deux étapes ci-dessus sur ce nombre comme suit :
3-bit Section of Binary Number |
011 |
001 |
011 |
010 |
001 |
Equivalent number |
3 |
1 |
3 |
2 |
1 |
Ainsi, le nombre octal, équivalent à le nombre binaire 11001011010001 est 31321.
Conversion octale en binaire
Pour convertir n'importe quel nombre entier octal en son nombre binaire correspondant, nous suivons les deux étapes suivantes :
Convertissez d'abord le nombre décimal en son équivalent binaire 3 bits. Et puis combinez 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 :
Equivalent number |
3 |
1 |
3 |
2 |
1 |
3-bit Section of Binary Number |
011 |
001 |
011 |
010 |
001 |
Ainsi, l'équivalent binaire du nombre octal 31321(Q) est 011 0010 1101 0001.
Conversion octale en décimale
Pour convertir n'importe quel nombre octal en décimal, nous multiplions la valeur de chaque position par son poids octal et additionnons chaque valeur.
Prenons un exemple pour mieux comprendre cela. Soit n'importe quel nombre octal 31321Q à convertir en son nombre décimal correspondant. Ensuite, nous suivrons 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
Convertir décimal en octal est un peu plus difficile. La méthode typique pour convertir de 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 sur le côté comme le chiffre le moins significatif. Ce processus se poursuit en divisant le quotient par 8 et en écrivant le reste jusqu'à ce que le quotient soit égal à 0.
Lorsque vous effectuez la division, les restes qui représenteront l'équivalent octal du nombre décimal sont écrits en commençant par le chiffre le moins significatif (à droite) et chaque nouveau chiffre est écrit au chiffre le plus significatif suivant (à gauche) du précédent chiffre.
Comprenons-le mieux avec un exemple. Si nous avons un nombre décimal, disons 13009 (nous avons trouvé ce nombre décimal dans l'exemple ci-dessus 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 |
Remainder |
Octal Number |
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 sommes de retour avec le numéro d'origine. C'est ce à quoi nous devrions nous attendre. Ce tableau était de comprendre la procédure. Répétons maintenant la même conversion pour comprendre la méthode à suivre en pratique pour obtenir la facilité de travail et pour gagner du temps également. Les deux sont les mêmes choses en fait.
Lorsque nous organisons les restes selon le sens de la flèche, nous obtenons le nombre octal 31321, que nous attendions.
Système de numération hexadécimal
Les nombres hexadécimaux sont les plus couramment utilisés dans notre 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 en binaire et du binaire en hexadécimal. Lorsque nous calculerons de nombreuses choses importantes comme le nombre de cylindres, de têtes et de secteurs d'un disque dur ou que nous utiliserons 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 Hex. Le système Hexadécimal est basé sur le système binaire utilisant une limite Nibble ou 4 bits.
Le système de numération hexadécimale 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 désigner tout nombre hexadécimal. Le tableau suivant montre la représentation des différents systèmes de numération, en les différenciant les uns des autres :
Binary |
Octal |
Decimal |
Hex |
0000B |
00Q |
00 |
00H |
0001B |
01Q |
01 |
01H |
0010B |
02Q |
02 |
02H |
0011B |
03Q |
03 |
03H |
0100B |
04Q |
04 |
04H |
0101B |
05Q |
05 |
05H |
0110B |
06Q |
06 |
06H |
0111B |
07Q |
07 |
07H |
1000B |
10Q |
08 |
08H |
1001B |
11Q |
09 |
09H |
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 |
10H |
Ce tableau fournit toutes les informations dont vous pourriez avoir besoin pour convertir d'une base numérique à une autre pour les valeurs décimales de 0 à 16.
Les valeurs pondérées pour chaque position des nombres hexadécimaux ont été présentées dans le tableau suivant :
(Base)power |
163 |
162 |
161 |
160 |
Value |
4096 |
256 |
16 |
1 |
Conversion binaire en hexadécimal
Pour convertir un nombre binaire au format hexadécimal, remplissez d'abord le nombre binaire avec des zéros non significatifs sur le côté le plus à gauche pour vous assurer que le nombre binaire contient des multiples de quatre bits. Après cela, suivez les deux étapes suivantes :
Tout d'abord, divisez le nombre binaire en sections de 4 bits du LSB au MSB. Et puis convertissez le nombre binaire 4 bits en son équivalent hexadécimal. Prenons un exemple pour mieux comprendre la méthode. Soit n'importe quel nombre binaire 100 1110 1101 0011 à convertir en son nombre hexadécimal correspondant. Ensuite, nous appliquerons les deux étapes ci-dessus comme indiqué ci-dessous :
4-bit binary number section |
0100 |
1110 |
1101 |
0011 |
Hexadecimal value |
4 |
E |
D |
3 |
Ainsi la valeur hexadécimale, correspondant au nombre binaire 100 1110 1101 0011 est 4ED3.
Conversion hexadécimal en binaire
Pour convertir un nombre hexadécimal en un nombre binaire, nous suivons les deux étapes suivantes :
Tout d'abord, convertissez le nombre hexadécimal en son équivalent binaire 4 bits. Et puis 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-lui ces deux étapes comme suit
Hexadecimal value |
4 |
E |
D |
3 |
4-bit binary number section |
0100 |
1110 |
1101 |
0011 |
Ainsi pour le nombre hexadécimal 4ED3, on obtient le nombre binaire correspondant = 0100 1110 1101 0011
C'est la réponse attendue. Conversion hexadécimal en décimal Pour convertir de l'hexadécimal en décimal, nous multiplions la valeur dans 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. Ensuite la procédure sera la suivante :
3*163 + A*162 + B*161 + E*160
= 3* 4096 + 10* 256 + 11*16 + 14
= 12288 + 2560 + 176 + 14
= 15038
Ainsi, le nombre décimal équivalent pour lenombre hexadécimal 3ABE est 15038.
Conversion décimal en hexadécimal
Pour convertir un décimal en hexadécimal, la méthode typique est la division répétée par 16. Pour cette méthode, nous divisons le nombre décimal par 16 et écrivons le reste sur le côté comme le chiffre le moins significatif.
Ce processus se poursuit en divisant le quotient par 16 et en écrivant le reste jusqu'à ce que le quotient soit égal à 0. Lors 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 au chiffre suivant le plus significatif (le gauche) du chiffre précédent.
Apprenons-le par l'exemple. Nous prenons le nombre décimal 15038 que nous avons obtenu après conversion ci-dessus. Par cela, nous pouvons également vérifier la conversion ci-dessus et vice-versa.
Division |
Quotient |
Remainder |
Hex Number |
15038 / 16 |
939 |
14 (E H) |
E |
939 / 16 |
58 |
11 (B H) |
BE |
58 / 16 |
3 |
10 (A H) |
ABE |
3 / 16 |
0 |
3 (3 H) |
03ABE |
Ainsi, nous obtenons le nombre hexadécimal 03ABE H, équivalent au nombre décimal 15038 et nous revenons ainsi au nombre d'origine. C'est ce à quoi nous devrions nous attendre.
Le tableau ci-dessous peut aider à obtenir une recherche rapide de conversion de 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, commençant de 0 à A et il y a 16 colonnes commençant également de 0 à A. À partir de ce tableau, vous pouvez trouver la valeur décimale de tout nombre hexadécimal qui se situe entre la plage de 0H à la FFH. Cela signifie que la valeur décimale du nombre doit être comprise entre 0 et 255 nombres décimaux.
- Recherche de la valeur décimale pour le nombre hexadécimal du tableau ci-dessus : dans le tableau ci-dessus, le nombre de lignes représente le premier chiffre hexadécimal (chiffre hexadécimal de gauche) et le nombre de colonnes représente le deuxième chiffre hexadécimal (chiffre hexadécimal de droite) du nombre hexadécimal.
Prenons n'importe quel nombre hexadécimal, disons ACH, à convertir en nombre décimal équivalent. Ensuite, nous verrons la valeur décimale dans la colonne Cth de la ligne Ath du tableau et obtiendrons la valeur décimale 172, qui est le nombre décimal équivalent pour le nombre hexadécimal ACH.
- Recherche de la valeur hexadécimale pour le nombre décimal du tableau ci-dessus : dans le tableau ci-dessus, le nombre de lignes représente le premier chiffre hexadécimal (chiffre hexadécimal de gauche) et le nombre de colonnes représente le deuxième chiffre hexadécimal (chiffre hexadécimal de droite) de le nombre hexadécimal donc si vous avez un nombre décimal à convertir en nombre hexadécimal équivalent, recherchez le nombre dans le tableau et trouvez la valeur hexadécimale équivalente comme suit :
Valeur Hex pour le Nombre Décimal = (Numéro de Ligne)(Numéro de Colonne)
Par exemple, si vous voulez trouver le nombre de valeur hexadécimale équivalente pour le nombre décimal 154, consultez l'emplacement du nombre dans le tableau. Le nombre 154 se trouve dans la 9e ligne et la 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 de caractères étendus qui ont été 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 de l'imprimante et de l'affichage plutôt que d'afficher des symboles. Ces caractères ont été répertoriés dans la table des caractères ASCII donnée dans ce chapitre. Ces caractères de contrôle ont les significations suivantes :
NUL (Null):
Aucun caractère. Il est utilisé pour remplir le temps ou remplir l'espace sur la surface (telle que la surface du plateau) du périphérique de stockage où il n'y a pas de données. Nous utiliserons ce caractère lorsque nous programmerons 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 ou par aucun programme.
SOH (début du titre) :
Ce caractère est utilisé pour indiquer le début de l'en-tête, qui peut contenir des informations d'adresse ou de routage.
TX (début du texte) :
Ce caractère est utilisé pour indiquer le début du texte et de cette manière, il est également utilisé pour indiquer la fin de l'en-tête.
ETX (Fin du texte) :
Ce caractère est utilisé pour terminer le texte qui a commencé avec 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.
ENQ (enquête) :
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 (accusé de réception) :
Il s'agit d'un caractère, transmis par un appareil récepteur en réponse d'affirmation à une ponceuse. Il est utilisé comme réponse positive aux messages d'interrogation.
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'attention. Vous pouvez entendre une sonnerie dans les haut-parleurs connectés à votre ordinateur lorsque vous tapez ce caractère dans l'invite de commande comme indiqué ci-dessous :
C:\> Écho ^G
Ici ^G est imprimé par la combinaison de touches Ctrl + G.
BS (Retour arrière) :
Ce caractère indique le mouvement du mécanisme d'impression ou affiche le curseur vers l'arrière dans une position.
HT (onglet horizontal) :
Il indique le mouvement du mécanisme d'impression ou affiche le curseur vers le prochain "Tab" pré-assigné ou la position d'arrêt.
LF (saut de ligne) :
Il indique le mouvement du mécanisme d'impression ou affiche le curseur au début de la ligne suivante.
VT (onglet vertical) :
Il indique le mouvement du mécanisme d'impression ou affiche le curseur vers la suivante d'une série de lignes d'impression pré-assignées.
FF (saut de page) :
Il indique le mouvement du mécanisme d'impression ou du curseur d'affichage vers la position de départ de la page suivante, de ou de l'écran.
CR (retour chariot) :
Il indique le mouvement du mécanisme d'impression ou le curseur d'affichage vers la position de départ de la même ligne.
SO (Shift Out) :
Cela indique que les combinaisons de codes qui suivent doivent être interprétées comme étant en dehors du jeu de caractères standard jusqu'à ce qu'un caractère Shift In soit atteint.
I (Shift In) :
Il indique que les combinaisons de codes qui suivent 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 doit changer la signification d'un ou plusieurs caractères consécutifs. Il peut fournir un contrôle supplémentaire ou permettre l'envoi de caractères de données ayant n'importe quelle combinaison de bits.
DC1, DC2, DC3 et DC4 (commandes de l'appareil) :
Ce sont les caractères pour le contrôle des dispositifs auxiliaires ou des fonctionnalités spéciales du terminal.
NAK (accusé de réception négatif) :
Il s'agit d'un caractère transmis par un appareil récepteur en réponse négative à un expéditeur. Il est utilisé comme réponse négative au message d'interrogation.
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 du bloc de transmission) :
Ce caractère indique la fin d'un bloc de données à des fins de communication. Il est utilisé pour bloquer les données, où la structure du bloc n'est pas nécessairement liée au format de traitement.
CAN (Annuler) : Cela 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 du support) : Il indique la fin physique d'une bande, de la surface (généralement du plateau d'un disque) ou d'un autre support ou la fin de la partie requise ou utilisée du support.
SUB (Substitute) : Il s'agit d'un substitut pour un caractère qui s'avère erroné ou invalide.
ESC (Escape) : Il s'agit d'un caractère destiné à fournir une extension de code en ce sens qu'il donne à un nombre spécifié de caractères qui suivent en continu une autre signification.
FS (séparateur de fichier) : ce caractère est utilisé comme caractère de séparation de fichier.
GS (Séparateur de groupe) : Il est utilisé comme caractère de séparation de groupe.
RS (Record Separator) : Il est utilisé comme caractère séparateur d'enregistrements.
États-Unis (séparateur uni) :
C'est un caractère séparateur uni.
Le deuxième groupe de 32 codes de caractères ASCII comprend divers symboles de ponctuation, des caractères spéciaux et des chiffres. Les personnages les plus notables de ce groupe sont les suivants :
space character (ASCII code 20H)
numeric digits 0 through 9 (ASCII codes 30h through 39h)
mathematical and logical symbols
SP (Espace) :
C'est un caractère non imprimable utilisé pour séparer des mots ou pour déplacer le mécanisme d'impression ou pour faire avancer le curseur d'une position.
Le troisième groupe de 32 caractères ASCII est le groupe de caractères alphabétiques majuscules. Les codes ASCII des caractères A à Z sont compris entre 41H et 5AH. Puisqu'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 est le groupe de symboles alphabétiques minuscules, cinq symboles spéciaux supplémentaires et un autre caractère de contrôle à supprimer.
DEL (Supprimer) :
Il est utilisé pour effacer les caractères indésirables plutôt que nous pouvons dire pour supprimer les caractères indésirables.
Deux tableaux ont ensuite été affiché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. Cette table est une représentation de données et une table ASCII comme indiqué ci-dessous :
Représentation des données et tableau des codes ASCII :
HEX |
DEC |
CHR |
CTRL |
00 |
0 |
NUL |
^@ |
01 |
1 |
SOH |
^A |
02 |
2 |
STX |
^B |
03 |
3 |
ETX |
^C |
04 |
4 |
EOT |
^D |
05 |
5 |
ENQ |
^E |
06 |
6 |
ACK |
^F |
07 |
7 |
BEL |
^G |
08 |
8 |
BS |
^H |
09 |
9 |
HT |
^I |
0A |
10 |
LF |
^J |
0B |
11 |
VT |
^K |
0C |
12 |
FF |
^L |
0D |
13 |
CR |
^M |
0E |
14 |
SO |
^N |
0F |
15 |
SI |
^O |
10 |
16 |
DLE |
^P |
11 |
17 |
DC1 |
^Q |
12 |
18 |
DC2 |
^R |
13 |
19 |
DC3 |
^S |
14 |
20 |
DC4 |
^T |
15 |
21 |
NAK |
^U |
16 |
22 |
SYN |
^V |
17 |
23 |
ETB |
^W |
18 |
24 |
CAN |
^X |
19 |
25 |
EM |
^Y |
1A |
26 |
SUB |
^Z |
1B |
27 |
ESC |
1C |
28 |
FS |
1D |
29 |
GS |
1E |
30 |
RS |
1F |
31 |
US |
HEX |
DEC |
CHR |
20 |
32 |
SP |
21 |
33 |
! |
22 |
34 |
" |
23 |
35 |
# |
24 |
36 |
$ |
25 |
37 |
% |
26 |
38 |
& |
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 |
? |
HEX |
DEC |
CHR |
40 |
64 |
@ |
41 |
65 |
A |
42 |
66 |
B |
43 |
67 |
C |
44 |
68 |
D |
45 |
69 |
E |
46 |
70 |
F |
47 |
71 |
G |
48 |
72 |
H |
49 |
73 |
I |
4A |
74 |
J |
4B |
75 |
K |
4C |
76 |
L |
4D |
77 |
M |
4E |
78 |
N |
4F |
79 |
O |
50 |
80 |
P |
51 |
81 |
Q |
52 |
82 |
R |
53 |
83 |
S |
54 |
84 |
T |
55 |
85 |
U |
56 |
86 |
V |
57 |
87 |
W |
58 |
88 |
X |
59 |
89 |
Y |
5A |
90 |
Z |
5B |
91 |
[ |
5C |
92 |
\ |
5D |
93 |
] |
5E |
94 |
^ |
5F |
95 |
_ |
HEX |
DEC |
CHR |
60 |
96 |
` |
61 |
97 |
a |
62 |
98 |
b |
63 |
99 |
c |
64 |
100 |
d |
65 |
101 |
e |
66 |
102 |
f |
67 |
103 |
g |
68 |
104 |
h |
69 |
105 |
i |
6A |
106 |
j |
6B |
107 |
k |
6C |
108 |
l |
6D |
109 |
m |
6E |
110 |
n |
6F |
111 |
o |
70 |
112 |
p |
71 |
113 |
q |
72 |
114 |
r |
73 |
115 |
s |
74 |
116 |
t |
75 |
117 |
u |
76 |
118 |
v |
77 |
119 |
w |
78 |
120 |
x |
79 |
121 |
y |
7A |
122 |
z |
7B |
123 |
{[} |
7C |
124 |
| |
7D |
125 |
} |
7E |
126 |
~ |
7F |
127 |
DEL |
Le tableau suivant montre le jeu de 128 caractères ASCII spéciaux qui sont souvent appelés les caractères ASCII étendus :
HEX |
DEC |
CHR |
80 |
128 |
Ç |
81 |
129 |
ü |
82 |
130 |
é |
83 |
131 |
â |
84 |
132 |
ä |
85 |
133 |
à |
86 |
134 |
å |
87 |
135 |
ç |
88 |
136 |
ê |
89 |
137 |
ë |
8A |
138 |
è |
8B |
139 |
ï |
8C |
140 |
î |
8D |
141 |
ì |
8E |
142 |
Ä |
8F |
143 |
Å |
90 |
144 |
É |
91 |
145 |
æ |
92 |
146 |
Æ |
93 |
147 |
ô |
94 |
148 |
ö |
95 |
149 |
ò |
96 |
150 |
û |
97 |
151 |
ù |
98 |
152 |
ÿ |
99 |
153 |
Ö |
9A |
154 |
Ü |
9B |
155 |
¢ |
9C |
156 |
£ |
9D |
157 |
¥ |
9E |
158 |
₧ |
9F |
159 |
ƒ |
A0 |
160 |
á |
A1 |
161 |
í |
A2 |
162 |
ó |
A3 |
163 |
ú |
A4 |
164 |
ñ |
HEX |
DEC |
CHR |
A5 |
165 |
Ñ |
A6 |
166 |
ª |
A7 |
167 |
º |
A8 |
168 |
¿ |
A9 |
169 |
⌐ |
AA |
170 |
¬ |
AB |
171 |
½ |
AC |
172 |
¼ |
AD |
173 |
¡ |
AE |
174 |
« |
AF |
175 |
» |
B0 |
176 |
░ |
B1 |
177 |
▒ |
B2 |
178 |
▓ |
B3 |
179 |
│ |
B4 |
180 |
┤ |
B5 |
181 |
╡ |
B6 |
182 |
╢ |
B7 |
183 |
╖ |
B8 |
184 |
╕ |
B9 |
185 |
╣ |
BA |
186 |
║ |
BB |
187 |
╗ |
BC |
188 |
╝ |
BD |
189 |
╜ |
BE |
190 |
╛ |
BF |
191 |
┐ |
C0 |
192 |
└ |
C1 |
193 |
┴ |
C2 |
194 |
┬ |
C3 |
195 |
├ |
C4 |
196 |
─ |
C5 |
197 |
┼ |
C6 |
198 |
╞ |
C7 |
199 |
╟ |
C8 |
200 |
╚ |
C9 |
201 |
╔ |
HEX |
DEC |
CHR |
CA |
202 |
╩ |
CB |
203 |
╦ |
CC |
204 |
╠ |
CD |
205 |
═ |
CE |
206 |
╬ |
CF |
207 |
╧ |
D0 |
208 |
╨ |
D1 |
209 |
╤ |
D2 |
210 |
╥ |
D3 |
211 |
╙ |
D4 |
212 |
╘ |
D5 |
213 |
╒ |
D6 |
214 |
╓ |
D7 |
215 |
╫ |
D8 |
216 |
╪ |
D9 |
217 |
┘ |
DA |
218 |
┌ |
DB |
219 |
█ |
DC |
220 |
▄ |
DD |
221 |
▌ |
DE |
222 |
▐ |
DF |
223 |
▀ |
E0 |
224 |
α |
E1 |
225 |
ß |
E2 |
226 |
Γ |
E3 |
227 |
π |
E4 |
228 |
Σ |
E5 |
229 |
σ |
E6 |
230 |
µ |
E7 |
231 |
τ |
E8 |
232 |
Φ |
E9 |
233 |
Θ |
EA |
234 |
Ω |
EB |
235 |
δ |
EC |
236 |
∞ |
ED |
237 |
φ |
EE |
238 |
Ε |
HEX |
DEC |
CHR |
EF |
239 |
∩ |
F0 |
240 |
≡ |
F1 |
241 |
± |
F2 |
242 |
≥ |
F3 |
243 |
≤ |
F4 |
244 |
⌠ |
F5 |
245 |
⌡ |
F6 |
246 |
÷ |
F7 |
247 |
≈ |
F8 |
248 |
° |
F9 |
249 |
∙ |
FA |
250 |
· |
FB |
251 |
√ |
FC |
252 |
ⁿ |
FD |
253 |
² |
FE |
254 |
■ |
FF |
255 |
|
Quelques termes importants du système de numération, souvent utilisés pour la représentation des données et du stockage de données
Le tableau ci-dessous représente les différents préfixes qui sont utilisés comme préfixes fractionnaires et comme préfixes grossissants :
Octet :
L'utilisation la plus importante d'un octet est de contenir un code de caractère. Nous en avons discuté plus tôt.
Kilo-octet
Techniquement, un kilo-octet correspond à 1 024 octets, mais il est souvent utilisé de manière vague comme synonyme de 1 000 octets. Dans les systèmes décimaux, le kilo correspond à 1000, mais dans les systèmes binaires, un kilo correspond à 1024 (210).
Kilobyte est généralement représenté par K ou Kb. Pour faire la distinction entre un K décimal (1000) et un K binaire (1024), la norme IEEE (Institute of Electrical and Electronics Engineers) a suggéré de suivre la convention d'utiliser un petit k pour un kilo décimal et un K majuscule pour un kilo binaire mais cette convention n'est en aucun cas strictement suivie.
Mégaoctet
Le mégaoctet est utilisé pour décrire le stockage de données de 1048576 (220) octets, mais lorsqu'il est utilisé pour décrire les taux de transfert de données en Mbps, il fait référence à un million d'octets. Le mégaoctet est généralement abrégé en M ou en Mo.
Gigaoctet
Gigaoctet est utilisé pour décrire le stockage de 1 073 741 824 (230) octets et un gigaoctet est égal à 1 024 mégaoctets. Gigabyte est généralement abrégé en G ou GB.
Téraoctet
Le téraoctet correspond à 1 099 511 627 776 (240) octets, soit environ 1 000 milliards d'octets. Le téraoctet est parfois décrit comme 1012 (1 000 000 000 000) octets, ce qui correspond exactement à un billion.
Pétaoctet
Le pétaoctet correspond à 1 125 899 906 842 624 (250) octets. Un pétaoctet est égal à 1 024 téraoctets.
Exaoctet
Exabyte est décrit comme 1 152 921 504 606 846 976 (260) octets. Un exaoctet est égal à 1 024 pétaoctets.
Zettaoctet
Zettaoctet est décrit comme 1 180 591 620 717 411 303 424 (270) octets, soit environ 1 021 (1 000 000 000 000 000 000 000) octets. Un zettaoctet est égal à 1 024 exaoctets.
Yottaoctet
Yottabyte est décrit comme 1 208 925 819 614 629 174 706 176 (280) octets, soit environ 1 024 (1 000 000 000 000 000 000 000 000) octets. Un Yottabyte est égal à 1 024 Zettabytes.
Conditions communes de stockage des données
Il existe différents noms utilisés pour désigner les termes donnés précédemment, à différents groupements de bits de données. Certains des plus couramment utilisés ont été répertoriés dans le tableau suivant :
Term |
Number of Bits |
Bit / Digit / Flag |
1 |
Nibble / Nybble |
4 |
Byte / Character |
8 |
Word |
16 |
Double Word / Long Word |
32 |
Very Long Word |
64 |
Page modifiée le: 09/03/2022