Profondeur de bits du code binaire, Conversion des informations de la forme continue à la forme discrète, Universalité du codage binaire, Codes uniformes et non uniformes, Informatique 7e année Bosova, Informatique 7e année
1.5.1. Conversion d'informations d'une forme continue à une forme discrète
Pour résoudre ses problèmes, une personne doit souvent transformer des informations existantes d'une forme de représentation à une autre. Par exemple, lors de la lecture à haute voix, les informations sont converties d'une forme discrète (texte) à une forme continue (son). Au contraire, lors d’une dictée dans un cours de langue russe, l’information passe d’une forme continue (la voix du professeur) à une forme discrète (les notes des élèves).
Les informations présentées sous forme discrète sont beaucoup plus faciles à transmettre, à stocker ou à traiter automatiquement. Par conséquent, dans la technologie informatique, une grande attention est accordée aux méthodes de conversion des informations d'une forme continue à une forme discrète.
La discrétisation de l'information est le processus de conversion de l'information d'une forme continue de représentation à une forme discrète.
Examinons l'essence du processus d'échantillonnage d'informations à l'aide d'un exemple.
Les stations météorologiques disposent d'enregistreurs pour l'enregistrement continu de la pression atmosphérique. Le résultat de leur travail sont des barogrammes - des courbes montrant l'évolution de la pression sur de longues périodes de temps. L'une de ces courbes, tracée par l'appareil pendant sept heures d'observation, est représentée sur la Fig. 1.9.
Sur la base des informations reçues, vous pouvez construire un tableau contenant les relevés des instruments au début des mesures et à la fin de chaque heure d'observation (Fig. 1.10).
Le tableau obtenu ne donne pas une image complètement complète de l'évolution de la pression au cours de la période d'observation : par exemple, la valeur de pression la plus élevée survenue au cours de la quatrième heure d'observation n'est pas indiquée. Mais si vous totalisez les valeurs de pression observées toutes les demi-heures ou 15 minutes, le nouveau tableau donnera une image plus complète de l'évolution de la pression.
Ainsi, nous avons converti les informations présentées sous forme continue (barogramme, courbe) en forme discrète (tableau) avec une certaine perte de précision.
À l’avenir, vous vous familiariserez avec les manières de représenter discrètement des informations audio et graphiques.
Des chaînes de trois symboles binaires sont obtenues en complétant les codes binaires à deux chiffres à droite avec le symbole 0 ou 1. En conséquence, les combinaisons de codes de trois symboles binaires sont 8 - deux fois plus que celles de deux symboles binaires :
En conséquence, un binaire à quatre bits vous permet d'obtenir 16 combinaisons de codes, un à cinq bits - 32, un à six bits - 64, etc. La longueur de la chaîne binaire - le nombre de caractères dans le code binaire - est appelé la profondeur de bits du code binaire.
Noter que:
4 = 2 * 2,
8 = 2 * 2 * 2,
16 = 2 * 2 * 2 * 2,
32 = 2 * 2 * 2 * 2 * 2 etc.
Ici, le nombre de combinaisons de codes est le produit d'un certain nombre de facteurs identiques égal à la profondeur de bits du code binaire.
Si le nombre de combinaisons de codes est désigné par la lettre N et la profondeur de bits du code binaire par la lettre i, alors le motif identifié sous forme générale s'écrira comme suit :
N = 2 * 2 * ... * 2.
je facteurs
En mathématiques, ces produits s'écrivent sous la forme :
N = 2 je.
L'entrée 2 i se lit comme suit : « 2 à la i-ième puissance ».
Tâche. Le chef de la tribu Multi a demandé à son ministre de développer un système binaire et d'y traduire toutes les informations importantes. Quelle taille de binaire sera requise si l'alphabet utilisé par la tribu Multi contient 16 caractères ? Notez toutes les combinaisons de codes.
Solution. Étant donné que l'alphabet multi-tribus est composé de 16 caractères, ils ont besoin de 16 combinaisons de codes. Dans ce cas, la longueur (profondeur de bits) du code binaire est déterminée à partir du rapport : 16 = 2 i. Donc i = 4.
Pour écrire toutes les combinaisons de codes de quatre 0 et 1, nous utilisons le diagramme de la Fig. 1.13 : 0000, 0001, 0010, 0011, 0100, 0101, 0110,0111,1000,1001,1010,1011,1100,1101,1110,1111.
1.5.3. La polyvalence du codage binaire
Au début de cette section, vous avez appris que, représenté sous forme continue, il peut être exprimé à l'aide de symboles dans un langage naturel ou formel. À leur tour, les caractères d’un alphabet arbitraire peuvent être convertis en binaire. Ainsi, à l'aide du code binaire, tous les langages naturels et formels, ainsi que les images et les sons, peuvent être représentés (Fig. 1.14). Cela signifie l'universalité du codage binaire.
Les codes binaires sont largement utilisés en technologie informatique, ne nécessitant que deux états d'un circuit électronique - « activé » (cela correspond au chiffre 1) et « off » (cela correspond au chiffre 0).
La simplicité de mise en œuvre technique est le principal avantage du codage binaire. L’inconvénient du codage binaire est la grande longueur du code obtenu.
1.5.4. Codes uniformes et non uniformes
Il existe des codes uniformes et non uniformes. Les codes uniformes dans les combinaisons de codes contiennent le même nombre de symboles, les codes impairs contiennent un nombre différent.
Ci-dessus, nous avons examiné les codes binaires uniformes.
Un exemple de code non uniforme est le code Morse, dans lequel une séquence de signaux courts et longs est définie pour chaque lettre et chiffre. Ainsi, la lettre E correspond à un signal court (« point »), et la lettre Ш correspond à quatre signaux longs (quatre « tirets »). Inégal vous permet d'augmenter la vitesse de transmission des messages car les symboles apparaissant le plus fréquemment dans les informations transmises ont les combinaisons de codes les plus courtes.
L'information que donne ce symbole est égale à l'entropie du système et est maximale dans le cas où les deux états sont également probables ; dans ce cas, le symbole élémentaire véhicule l'information 1 (deux unités). Par conséquent, la base d'un codage optimal sera l'exigence que les caractères élémentaires du texte codé apparaissent en moyenne aussi souvent.
Présentons ici une méthode pour construire un code qui satisfait à la condition énoncée ; Cette méthode est connue sous le nom de code de Shannon-Fano. Son idée est que les symboles codés (lettres ou combinaisons de lettres) sont divisés en deux groupes à peu près également probables : pour le premier groupe de symboles, 0 est placé à la première place de la combinaison (le premier caractère du nombre binaire représentant le symbole); pour le deuxième groupe - 1. Ensuite, chaque groupe est à nouveau divisé en deux sous-groupes à peu près également probables ; pour les symboles du premier sous-groupe, zéro est placé en deuxième place ; pour le deuxième sous-groupe - un, etc.
Démontrons le principe de construction du code de Shannon-Fano en utilisant le matériau de l'alphabet russe (tableau 18.8.1). Comptons les six premières lettres (de « - » à « t ») ; en résumant leurs probabilités (fréquences), nous obtenons 0,498 ; toutes les autres lettres (de « n » à « sf ») auront approximativement la même probabilité de 0,502. Les six premières lettres (de « - » à « t ») auront en premier lieu un 0 binaire. Les lettres restantes (de « n » à « f ») auront en premier lieu un un. Ensuite, nous divisons à nouveau le premier groupe en deux sous-groupes à peu près également probables : de « - » à « o » et de « e » à « t » ; pour toutes les lettres du premier sous-groupe, nous mettrons en deuxième lieu zéro, et du deuxième sous-groupe - un. Nous continuerons le processus jusqu'à ce qu'il reste exactement une lettre dans chaque division, qui sera codée avec un certain nombre binaire. Le mécanisme pour construire le code est présenté dans le tableau 18.8.2, et le code lui-même est donné dans le tableau 18.8.3.
Tableau 18.8.2.
Signes binaires |
|||||||||
Tableau 18.8.3
À l'aide du tableau 18.8.3, vous pouvez encoder et décoder n'importe quel message.
À titre d’exemple, écrivons l’expression « théorie de l’information » en code binaire.
01110100001101000110110110000
0110100011111111100110100
1100001011111110101100110
Notez qu'il n'est pas nécessaire de séparer les lettres les unes des autres par un signe spécial, puisque le décodage s'effectue sans ambiguïté même sans cela. Vous pouvez le vérifier en décodant la phrase suivante à l'aide du tableau 18.8.2 :
10011100110011001001111010000
1011100111001001101010000110101
010110000110110110
(« méthode de codage »).
Il faut cependant noter que toute erreur d'encodage (confusion aléatoire des caractères 0 et 1) avec un tel code est désastreuse, puisque décoder tout le texte suivant l'erreur devient impossible. Par conséquent, ce principe de codage ne peut être recommandé que dans les cas où les erreurs de codage et de transmission d'un message sont pratiquement éliminées.
Une question naturelle se pose : le code que nous avons compilé, en l’absence d’erreurs, est-il vraiment optimal ? Pour répondre à cette question, trouvons l'information moyenne par symbole élémentaire (0 ou 1) et comparons-la avec le maximum d'informations possible, qui est égal à une unité binaire. Pour ce faire, on trouve d'abord l'information moyenne contenue dans une lettre du texte transmis, soit l'entropie par lettre :
,
où est la probabilité que la lettre prenne un certain état (« - », o, e, a,..., f).
De la table 18.8.1 nous avons
(deux unités par lettre de texte).
A l'aide du tableau 18.8.2, on détermine le nombre moyen de symboles élémentaires par lettre
En divisant l'entropie par, on obtient l'information par symbole élémentaire
(deux unités).
Ainsi, l'information par caractère est très proche de sa limite supérieure de 1, et le code que nous avons choisi est très proche de celui optimal. En restant dans les limites du codage des lettres, on ne peut pas faire mieux.
Notez que dans le cas d'un codage de nombres de lettres simplement binaires, nous aurions une image de chaque lettre avec cinq caractères binaires et les informations pour un caractère seraient
(deux unités),
c'est-à-dire sensiblement moins qu'avec un codage de lettres optimal.
Il convient toutefois de noter que le codage « par lettre » n’est pas du tout économique. Le fait est qu’il existe toujours une dépendance entre les lettres adjacentes de tout texte significatif. Par exemple, après une voyelle en russe, il ne peut pas y avoir « ъ » ou « ь » ; « Je » ou « yu » ne peuvent pas apparaître après les sifflements ; après plusieurs consonnes d'affilée, la probabilité d'une voyelle augmente, etc.
Nous savons que lorsque des systèmes dépendants sont combinés, l’entropie totale est inférieure à la somme des entropies des systèmes individuels ; par conséquent, l'information véhiculée par un morceau de texte connecté est toujours inférieure à l'information par caractère multipliée par le nombre de caractères. Compte tenu de cette circonstance, un code plus économique peut être construit si vous ne codez pas chaque lettre individuellement, mais des « blocs » entiers de lettres. Par exemple, dans un texte russe, il est logique d'encoder entièrement certaines combinaisons de lettres fréquentes, telles que « tsya », « ayet », « nie », etc. Les blocs codés sont classés par ordre décroissant de fréquence, comme les lettres dans la table. 18.8.1, et le codage binaire s'effectue selon le même principe.
Dans certains cas, il s'avère raisonnable de coder non même des blocs de lettres, mais des morceaux de texte entiers et significatifs. Par exemple, pour soulager le télégraphe pendant les vacances, il convient d'encoder des textes standards entiers avec des nombres conventionnels, tels que :
"Félicitations pour la nouvelle année, je vous souhaite une bonne santé et du succès dans votre travail."
Sans nous attarder spécifiquement sur les méthodes de codage par blocs, nous nous limiterons à formuler le théorème de Shannon évoqué ici.
Soit une source d'information et un récepteur connectés par un canal de communication (Fig. 18.8.1).
La productivité de la source d'information est connue, c'est-à-dire le nombre moyen d'unités d'information binaires provenant de la source par unité de temps (numériquement elle est égale à l'entropie moyenne du message produit par les sources par unité de temps). Connaître en outre la capacité du canal, c'est-à-dire la quantité maximale d'informations (par exemple, les caractères binaires 0 ou 1) que le canal est capable de transmettre dans la même unité de temps. La question se pose : quelle doit être la capacité du canal pour qu'il « fasse face » à sa tâche, c'est-à-dire pour que l'information arrive sans délai de la source au récepteur ?
La réponse à cette question est donnée par le premier théorème de Shannon. Formulons-le ici sans preuve.
1er théorème de Shannon
Si la capacité du canal de communication est supérieure à l'entropie de la source d'information par unité de temps
alors il est toujours possible de coder un message suffisamment long pour qu'il soit transmis par un canal de communication sans délai. Si au contraire
alors le transfert d'informations sans délai est impossible.
La signification du terme « binaire » est qu’il se compose de deux parties ou composants. Ainsi, les codes binaires sont des codes constitués de seulement deux états symboliques, tels que noir ou blanc, clair ou foncé, conducteur ou isolant. Un code binaire en technologie numérique est une manière de représenter des données (nombres, mots et autres) comme une combinaison de deux caractères, qui peuvent être désignés par 0 et 1. Les caractères ou unités de BC sont appelés bits. L'une des justifications de l'utilisation du BC est la simplicité et la fiabilité du stockage d'informations sur n'importe quel support sous la forme d'une combinaison de seulement deux de ses états physiques, par exemple sous la forme d'un changement ou d'une constance du flux lumineux lorsque lecture à partir d'un disque à code optique.
Il existe différentes possibilités de codage des informations.
Code binaire
En technologie numérique, méthode de représentation de données (nombres, mots et autres) sous la forme d'une combinaison de deux caractères, qui peuvent être désignés par 0 et 1. Les signes ou unités du DC sont appelés bits.
L'une des justifications de l'utilisation du DC est la simplicité et la fiabilité du stockage d'informations sur n'importe quel support sous la forme d'une combinaison de seulement deux de ses états physiques, par exemple sous la forme d'un changement ou d'une constance du flux magnétique dans une cellule donnée du support d'enregistrement magnétique.
Le plus grand nombre pouvant être exprimé en binaire dépend du nombre de chiffres utilisés, c'est-à-dire sur le nombre de bits dans la combinaison exprimant le nombre. Par exemple, pour exprimer les valeurs numériques de 0 à 7, il suffit d'avoir un code à 3 chiffres ou 3 bits :
valeur numérique | code binaire |
0 | 000 |
1 | 001 |
2 | 010 |
3 | 011 |
4 | 100 |
5 | 101 |
6 | 110 |
7 | 111 |
De là, nous pouvons voir que pour un nombre supérieur à 7 avec un code à 3 chiffres, il n'y a plus de combinaisons de codes 0 et 1.
Passant des nombres aux grandeurs physiques, formulons l'énoncé ci-dessus sous une forme plus générale : le plus grand nombre de valeurs m de toute grandeur (température, tension, courant, etc.), qui peut être exprimée en code binaire, dépend sur le nombre de bits utilisés n comme m= 2n. Si n=3, comme dans l’exemple considéré, alors on obtient 8 valeurs, dont 0 en tête.
Le code binaire est un code à plusieurs étapes. Cela signifie que lors du passage d'une position (valeur) à une autre, plusieurs bits peuvent changer simultanément. Par exemple, le chiffre 3 en code binaire = 011. Le chiffre 4 en code binaire = 100. Ainsi, lors du passage de 3 à 4, les 3 bits changent simultanément d'état à l'opposé. La lecture d'un tel code à partir d'un disque codé conduirait au fait qu'en raison d'inévitables écarts (tolérances) lors de la production d'un disque codé, un changement d'information de chacune des pistes séparément ne se produira jamais simultanément. Cela conduirait à son tour au fait que lors du passage d'un numéro à un autre, des informations incorrectes seraient brièvement fournies. Ainsi, lors de la transition mentionnée ci-dessus du chiffre 3 au chiffre 4, une sortie à court terme du chiffre 7 est très probable lorsque, par exemple, le bit le plus significatif lors de la transition a changé de valeur un peu plus tôt que le reste. . Pour éviter cela, un code dit en une étape est utilisé, par exemple le code Gray.
Code gris
Le code Gray est ce qu'on appelle un code en une étape, c'est-à-dire Lorsque vous passez d’un numéro à un autre, un seul élément d’information change toujours. Une erreur lors de la lecture des informations d'un disque à code mécanique lors du passage d'un numéro à un autre ne conduira qu'au fait que le passage d'une position à une autre ne sera que légèrement décalée dans le temps, mais à l'émission d'une valeur de position angulaire complètement incorrecte lorsque le passage d'une position à une autre est complètement éliminé.
Un autre avantage du Gray Code est sa capacité à refléter les informations. Ainsi, en inversant le bit le plus significatif, vous pouvez simplement changer le sens de comptage et ainsi faire correspondre le sens de rotation réel (physique) de l'axe. Changer le sens de comptage de cette manière peut être facilement modifié en contrôlant l'entrée dite « Complément ». La valeur de sortie peut ainsi être croissante ou décroissante pour un même sens physique de rotation de l'axe.
Étant donné que les informations exprimées dans le code Gray sont de nature purement codée et ne contiennent pas d'informations numériques réelles, elles doivent d'abord être converties en un code binaire standard avant un traitement ultérieur. Cela se fait à l'aide d'un convertisseur de code (décodeur Gray-Binar), qui, heureusement, est facilement implémenté à l'aide d'un circuit d'éléments logiques ou exclusifs (XOR), à la fois logiciels et matériels.
Nombres décimaux correspondants compris entre 0 et 15 jusqu'aux codes binaires et Gray
Codage binaire | Codage gris |
||||
Code décimal |
Valeur binaire | Seize signification | Code décimal | Valeur binaire | Seize signification |
0 | 0000 | 0h | 0 | 0000 | 0h |
1 | 0001 | 1h | 1 | 0001 | 1h |
2 | 0010 | 2h | 3 | 0011 | 3h |
3 | 0011 | 3h | 2 | 0010 | 2h |
4 | 0100 | 4h | 6 | 0110 | 6h |
5 | 0101 | 5h | 7 | 0111 | 7h |
6 | 0110 | 6h | 5 | 0101 | 5h |
7 | 0111 | 7h | 4 | 0100 | 4h |
8 | 1000 | 8h | 12 | 1100 | Ch. |
9 | 1001 | 9h | 13 | 1101 | DH |
10 | 1010 | Ah | 15 | 1111 | Fh |
11 | 1011 | Bh | 14 | 1110 | Eh |
12 | 1100 | Ch. | 10 | 1010 | Ah |
13 | 1101 | DH | 11 | 1011 | Bh |
14 | 1110 | Eh | 9 | 1001 | 9h |
15 | 1111 | Fh | 8 | 1000 | 8h |
La conversion du code Gray en code binaire habituel peut être effectuée à l'aide d'un circuit simple avec des inverseurs et des portes ou exclusif, comme indiqué ci-dessous :
Code Gray-Excès
Le code Gray habituel en une étape convient aux résolutions qui peuvent être représentées par un nombre élevé à la puissance 2. Dans les cas où il est nécessaire de mettre en œuvre d'autres autorisations, la section centrale est découpée dans le code Gray normal et utilisée. De cette façon, le code reste « en une seule étape ». Cependant, la plage numérique ne commence pas à zéro, mais est décalée d'une certaine valeur. Lors du traitement des informations, la moitié de la différence entre la résolution originale et la résolution réduite est soustraite du signal généré. Des résolutions telles que 360 ? pour exprimer un angle sont souvent mis en œuvre par cette méthode. Ainsi un code Gray de 9 bits égal à 512 pas, tronqué des deux côtés de 76 pas, sera égal à 360°.
Tout le monde sait que les ordinateurs peuvent effectuer des calculs sur de grands groupes de données à une vitesse énorme. Mais tout le monde ne sait pas que ces actions ne dépendent que de deux conditions : s'il y a du courant ou non et quelle tension.
Comment un ordinateur parvient-il à traiter une telle variété d’informations ?
Le secret réside dans le système de nombres binaires. Toutes les données entrent dans l'ordinateur, présentées sous forme de uns et de zéros, chacun correspondant à un état du fil électrique : des uns - haute tension, des zéros - faible, ou des uns - présence de tension, des zéros - son absence. La conversion des données en zéros et en uns est appelée conversion binaire, et sa désignation finale est appelée code binaire.
En notation décimale, basée sur le système de nombres décimaux utilisé dans la vie quotidienne, une valeur numérique est représentée par dix chiffres de 0 à 9, et chaque place du nombre a une valeur dix fois supérieure à la place à sa droite. Pour représenter un nombre supérieur à neuf dans le système décimal, un zéro est placé à sa place et un un est placé à l'emplacement suivant, le plus précieux, à gauche. De même, dans le système binaire, qui utilise seulement deux chiffres – 0 et 1, chaque place a deux fois plus de valeur que la place située à sa droite. Ainsi, dans le code binaire, seuls zéro et un peuvent être représentés comme des nombres simples, et tout nombre supérieur à un nécessite deux places. Après zéro et un, les trois nombres binaires suivants sont 10 (lire un-zéro) et 11 (lire un-un) et 100 (lire un-zéro-zéro). 100 binaire équivaut à 4 décimal. Le tableau supérieur à droite montre d'autres équivalents BCD.
N'importe quel nombre peut être exprimé en binaire, il prend simplement plus de place qu'en décimal. L'alphabet peut également être écrit dans le système binaire si un certain nombre binaire est attribué à chaque lettre.
Deux chiffres pour quatre places
16 combinaisons peuvent être réalisées à l'aide de boules sombres et claires, en les combinant par séries de 4. Si les boules sombres sont considérées comme des zéros et les boules claires comme des 1, alors 16 séries se révéleront être un code binaire de 16 unités, la valeur numérique de qui va de zéro à cinq (voir le tableau du haut à la page 27). Même avec deux types de boules dans le système binaire, un nombre infini de combinaisons peut être construit simplement en augmentant le nombre de boules dans chaque groupe – ou le nombre de places dans les nombres.
Bits et octets
Plus petite unité de traitement informatique, un bit est une unité de données qui peut avoir l'une des deux conditions possibles. Par exemple, chacun des uns et des zéros (à droite) représente 1 bit. Un bit peut être représenté d'autres manières : la présence ou l'absence de courant électrique, un trou ou son absence, le sens de l'aimantation vers la droite ou la gauche. Huit bits constituent un octet. 256 octets possibles peuvent représenter 256 caractères et symboles. De nombreux ordinateurs traitent un octet de données à la fois.
Conversion binaire. Un code binaire à quatre chiffres peut représenter des nombres décimaux de 0 à 15.
Tableaux de codes
Lorsque le code binaire est utilisé pour représenter des lettres de l'alphabet ou des signes de ponctuation, des tables de codes sont nécessaires pour indiquer quel code correspond à quel caractère. Plusieurs de ces codes ont été compilés. La plupart des PC sont configurés avec un code à sept chiffres appelé ASCII, ou American Standard Code for Information Interchange. Le tableau de droite montre les codes ASCII de l'alphabet anglais. D'autres codes concernent des milliers de caractères et d'alphabets d'autres langues du monde.
Partie d'une table de codes ASCII
L'ensemble de caractères avec lequel le texte est écrit est appelé alphabet.
Le nombre de caractères de l'alphabet est son pouvoir.
Formule pour déterminer la quantité d'informations : N=2b,
où N est la puissance de l'alphabet (nombre de caractères),
b – nombre de bits (poids informationnel du symbole).
L'alphabet d'une capacité de 256 caractères peut accueillir presque tous les caractères nécessaires. Cet alphabet s'appelle suffisant.
Parce que 256 = 2 8, alors le poids de 1 caractère est de 8 bits.
L'unité de mesure 8 bits a reçu le nom 1 octet :
1 octet = 8 bits.
Le code binaire de chaque caractère du texte informatique occupe 1 octet de mémoire.
Comment les informations textuelles sont-elles représentées dans la mémoire de l’ordinateur ?
La commodité du codage de caractères octet par octet est évidente car un octet est la plus petite partie adressable de la mémoire et, par conséquent, le processeur peut accéder à chaque caractère séparément lors du traitement du texte. En revanche, 256 caractères sont un nombre tout à fait suffisant pour représenter une grande variété d’informations symboliques.
La question se pose maintenant de savoir quel code binaire de huit bits attribuer à chaque caractère.
Il est clair qu'il s'agit d'une question conditionnelle, vous pouvez proposer de nombreuses méthodes de codage.
Tous les caractères de l'alphabet informatique sont numérotés de 0 à 255. Chaque numéro correspond à un code binaire de huit bits allant de 00000000 à 11111111. Ce code est simplement le numéro de série du caractère dans le système de numérotation binaire.
Une table dans laquelle tous les caractères de l'alphabet informatique se voient attribuer des numéros de série est appelée table de codage.
Différents types d'ordinateurs utilisent différentes tables de codage.
La table est devenue la norme internationale pour les PC ASCII(lire aski) (American Standard Code for Information Interchange).
La table des codes ASCII est divisée en deux parties.
Seule la première moitié du tableau constitue la norme internationale, c'est-à-dire symboles avec des chiffres de 0 (00000000), jusqu'à 127 (01111111).
Structure de la table de codage ASCII
Numéro de série |
Code |
Symbole |
0 - 31 |
00000000 - 00011111 |
Les symboles comportant des nombres de 0 à 31 sont généralement appelés symboles de contrôle. |
32 - 127 |
00100000 - 01111111 |
Partie standard du tableau (anglais). Cela inclut les lettres minuscules et majuscules de l’alphabet latin, les nombres décimaux, les signes de ponctuation, toutes sortes de parenthèses, les symboles commerciaux et autres. |
128 - 255 |
10000000 - 11111111 |
Partie alternative du tableau (russe). |
Première moitié de la table de codes ASCII
Veuillez noter que dans le tableau d'encodage, les lettres (majuscules et minuscules) sont classées par ordre alphabétique et les chiffres sont classés par ordre croissant. Ce respect de l'ordre lexicographique dans la disposition des symboles est appelé principe du codage séquentiel de l'alphabet.
Pour les lettres de l'alphabet russe, le principe du codage séquentiel est également respecté.
Deuxième moitié de la table de codes ASCII
Malheureusement, il existe actuellement cinq encodages cyrilliques différents (KOI8-R, Windows. MS-DOS, Macintosh et ISO). Pour cette raison, des problèmes surviennent souvent lors du transfert de texte russe d'un ordinateur à un autre, d'un système logiciel à un autre.
Chronologiquement, l'une des premières normes de codage des lettres russes sur les ordinateurs était KOI8 (« Information Exchange Code, 8-bit »). Ce codage a été utilisé dans les années 70 sur les ordinateurs de la série ES et, à partir du milieu des années 80, il a commencé à être utilisé dans les premières versions russifiées du système d'exploitation UNIX.
Depuis le début des années 90, époque de domination du système d'exploitation MS DOS, l'encodage CP866 demeure (« CP » signifie « Code Page », « code page »).
Les ordinateurs Apple exécutant le système d'exploitation Mac OS utilisent leur propre encodage Mac.
En outre, l'Organisation internationale de normalisation (ISO) a approuvé un autre codage appelé ISO 8859-5 comme norme pour la langue russe.
Le codage le plus couramment utilisé actuellement est Microsoft Windows, en abrégé CP1251.
Depuis la fin des années 90, le problème de la normalisation du codage des caractères a été résolu par l'introduction d'une nouvelle norme internationale appelée Unicode. Il s'agit d'un encodage 16 bits, c'est-à-dire il alloue 2 octets de mémoire pour chaque caractère. Bien entendu, cela multiplie par 2 la quantité de mémoire occupée. Mais une telle table de codes permet d'inclure jusqu'à 65 536 caractères. La spécification complète de la norme Unicode comprend tous les alphabets du monde existants, disparus et créés artificiellement, ainsi que de nombreux symboles mathématiques, musicaux, chimiques et autres.
Essayons d'utiliser un tableau ASCII pour imaginer à quoi ressembleront les mots dans la mémoire de l'ordinateur.
Représentation interne des mots dans la mémoire de l'ordinateur
Parfois, il arrive qu'un texte composé de lettres de l'alphabet russe reçu d'un autre ordinateur ne puisse pas être lu - une sorte d'« abracadabra » est visible sur l'écran du moniteur. Cela se produit parce que les ordinateurs utilisent des codages de caractères différents pour la langue russe.
Tous les caractères et lettres peuvent être codés à l’aide de huit bits binaires. Les tables de caractères binaires les plus courantes sont ASCII et ANSI, qui peuvent être utilisées pour écrire du texte dans des microprocesseurs. Dans les tableaux ASCII et ANSI, les 128 premiers caractères sont identiques. Cette partie du tableau contient des codes pour les chiffres, les signes de ponctuation, les lettres latines majuscules et minuscules et les caractères de contrôle. Les extensions nationales des tables de symboles et des symboles pseudographiques sont contenues dans les 128 derniers codes de ces tables, c'est pourquoi les textes russes dans les systèmes d'exploitation DOS et WINDOWS ne correspondent pas.
Lorsque l'on se familiarise pour la première fois avec les ordinateurs et les microprocesseurs, la question peut se poser : « comment convertir du texte en code binaire ? Pourtant, cette transformation est l’action la plus simple ! Pour ce faire, vous devez utiliser n'importe quel éditeur de texte. Le programme Notepad le plus simple, inclus avec le système d'exploitation Windows, convient également. Des éditeurs similaires sont présents dans tous les environnements de programmation pour des langages tels que SI, Pascal ou Java. Il convient de noter que l'éditeur de texte le plus courant, Word, n'est pas adapté à une simple conversion de texte en binaire. Cet éditeur de test saisit une énorme quantité d'informations supplémentaires, telles que la couleur des lettres, l'italique, le soulignement, la langue dans laquelle une phrase particulière est écrite et la police.
Il convient de noter qu'en fait, la combinaison de zéros et de uns avec laquelle les informations textuelles sont codées n'est pas un code binaire, car les bits de ce code n'obéissent pas aux lois. Cependant, sur Internet, l'expression de recherche « représentation binaire des lettres » est la plus courante. Le tableau 1 montre la correspondance des codes binaires avec les lettres de l'alphabet latin. Par souci de concision, la séquence de zéros et de uns dans ce tableau est présentée en codes décimaux et hexadécimaux.
Tableau 1 Tableau de représentation des lettres latines en code binaire (ASCII)
Code décimal | Code hexadécimal | Symbole d'affichage | Signification |
---|---|---|---|
0 | 00 | NUL | |
1 | 01 | ☺ | (afficher le mot de contrôle) |
2 | 02 | ☻ | (Premier mot transmis) |
3 | 03 | ETX (Dernier mot de transmission) | |
4 | 04 | ♦ | EOT (fin de transmission) |
5 | 05 | ♣ | ENQ (initialisation) |
6 | 06 | ♠ | ACK (accusé de réception) |
7 | 07 | BEL | |
8 | 08 | ◘ | BS. |
9 | 09 | ○ | HT (onglet horizontal) |
10 | 0A | ◙ | LF (saut de ligne) |
11 | 0B | ♂ | VT (onglet vertical) |
12 | 0C | ♀ | FF (page suivante) |
13 | 0D | ♪ | CR (retour chariot) |
14 | 0E | ♫ | SO (double largeur) |
15 | 0F | ☼ | SI (joint solide) |
16 | 10 | DLE | |
17 | 11 | ◄ | DC1 |
18 | 12 | ↕ | DC2 (annulation de l'impression compacte) |
19 | 13 | ‼ | DC3 (prêt) |
20 | 14 | ¶ | DC4 (annulation double largeur) |
21 | 15 | § | NAC (non-accusé de réception) |
22 | 16 | ▬ | SYN |
23 | 17 | ↨ | ETB |
24 | 18 | PEUT | |
25 | 19 | ↓ | E.M. |
26 | 1A | → | SOUS |
27 | 1B | ← | ESC (début de la séquence de contrôle) |
28 | 1C | ∟ | FS |
29 | 1D | ↔ | G.S. |
30 | 1E | ▲ | R.S. |
31 | 1F | ▼ | NOUS |
32 | 20 | Espace | |
33 | 21 | ! | Point d'exclamation |
34 | 22 | « | Support d'angle |
35 | 23 | # | Signe numérique |
36 | 24 | $ | Signe monétaire (dollar) |
37 | 25 | % | Signe de pourcentage |
38 | 26 | & | Esperluette |
39 | 27 | " | Apostrophe |
40 | 28 | ( | Support d'ouverture |
41 | 29 | ) | Parenthèse fermante |
42 | 2A | * | Étoile |
43 | 2B | + | Signe plus |
44 | 2C | , | Virgule |
45 | 2D | - | Signe moins |
46 | 2E | . | Point |
47 | 2F | / | Barre fractionnaire |
48 | 30 | 0 | Chiffre zéro |
49 | 31 | 1 | Numéro un |
50 | 32 | 2 | Numéro deux |
51 | 33 | 3 | Numéro trois |
52 | 34 | 4 | Numéro quatre |
53 | 35 | 5 | Numéro cinq |
54 | 36 | 6 | Numéro six |
55 | 37 | 7 | Numéro sept |
56 | 38 | 8 | Numéro huit |
57 | 39 | 9 | Numéro neuf |
58 | 3A | : | Côlon |
59 | 3B | ; | Point-virgule |
60 | 3C | < | Moins que le signe |
61 | 3D | = | Signe égal |
62 | 3E | > | Plus de signe |
63 | 3F | ? | Point d'interrogation |
64 | 40 | @ | Sol commercial |
65 | 41 | UN | Lettre majuscule latine A |
66 | 42 | B | Lettre majuscule latine B |
67 | 43 | C | Lettre majuscule latine C |
68 | 44 | D | Lettre majuscule latine D |
69 | 45 | E | Lettre majuscule latine E |
70 | 46 | F | Lettre majuscule latine F |
71 | 47 | g | Lettre majuscule latine G |
72 | 48 | H | Lettre majuscule latine H |
73 | 49 | je | Lettre majuscule latine I |
74 | 4A | J. | Lettre majuscule latine J |
75 | 4B | K | Lettre majuscule latine K |
76 | 4C | L | Lettre majuscule latine L |
77 | 4D | M | Lettre latine majuscule |
78 | 4E | N | Lettre majuscule latine N |
79 | 4F | Ô | Lettre majuscule latine O |
80 | 50 | P. | Lettre majuscule latine P |
81 | 51 | Q | Lettre latine majuscule |
82 | 52 | R. | Lettre majuscule latine R |
83 | 53 | S | Lettre majuscule latine S |
84 | 54 | T | Lettre majuscule latine T |
85 | 55 | U | Lettre majuscule latine U |
86 | 56 | V | Lettre majuscule latine V |
87 | 57 | W | Lettre majuscule latine W |
88 | 58 | X | Lettre majuscule latine X |
89 | 59 | Oui | Lettre majuscule latine Y |
90 | 5A | Z | Lettre majuscule latine Z |
91 | 5B | [ | Crochet ouvrant |
92 | 5C | \ | Barre oblique inverse |
93 | 5D | ] | Crochet fermant |
94 | 5E | ^ | "Couvercle" |
95 | 5 | _ | Caractère de soulignement |
96 | 60 | ` | Apostrophe |
97 | 61 | un | Lettre minuscule latine a |
98 | 62 | b | Lettre minuscule latine b |
99 | 63 | c | Lettre minuscule latine c |
100 | 64 | d | Lettre minuscule latine d |
101 | 65 | e | Lettre minuscule latine e |
102 | 66 | F | Lettre minuscule latine f |
103 | 67 | g | Lettre minuscule latine g |
104 | 68 | h | Lettre minuscule latine h |
105 | 69 | je | Lettre minuscule latine i |
106 | 6A | j | Lettre minuscule latine j |
107 | 6B | k | Lettre minuscule latine k |
108 | 6C | je | Lettre minuscule latine l |
109 | 6D | m | Lettre minuscule latine m |
110 | 6E | n | Lettre minuscule latine n |
111 | 6F | o | Lettre minuscule latine o |
112 | 70 | p | Lettre minuscule latine p |
113 | 71 | q | Lettre minuscule latine q |
114 | 72 | r | Lettre minuscule latine r |
115 | 73 | s | Lettre minuscule latine s |
116 | 74 | t | Lettre minuscule latine t |
117 | 75 | toi | Lettre minuscule latine u |
118 | 76 | v | Lettre minuscule latine v |
119 | 77 | w | Lettre minuscule latine w |
120 | 78 | X | Lettre minuscule latine x |
121 | 79 | oui | Lettre minuscule latine y |
122 | 7A | z | Lettre minuscule latine z |
123 | 7B | { | Orthèse d'ouverture |
124 | 7C | | | Barre verticale |
125 | 7D | } | Accolade de fermeture |
126 | 7E | ~ | Tilde |
127 | 7F | ⌂ |
Dans la version classique de la table de caractères ASCII, il n'y a pas de lettres russes et elle est composée de 7 bits. Cependant, plus tard, ce tableau a été étendu à 8 bits et des lettres russes en code binaire et des symboles pseudographiques sont apparus dans les 128 lignes supérieures. En général, la deuxième partie contient les alphabets nationaux des différents pays et les lettres russes ne sont qu'un des ensembles possibles (855) ; il peut y avoir un tableau français (863), allemand (1141) ou grec (737). Le tableau 2 montre un exemple de représentation des lettres russes en code binaire.
Tableau 2. Tableau de représentation des lettres russes en code binaire (ASCII)
Code décimal | Code hexadécimal | Symbole d'affichage | Signification |
---|---|---|---|
128 | 80 | UN | Lettre majuscule russe A |
129 | 81 | B | Lettre majuscule russe B |
130 | 82 | DANS | Lettre majuscule russe B |
131 | 83 | g | Lettre majuscule russe G |
132 | 84 | D | Lettre majuscule russe D |
133 | 85 | E | Lettre majuscule russe E |
134 | 86 | ET | Lettre majuscule russe Zh |
135 | 87 | Z | Lettre majuscule russe Z |
136 | 88 | ET | Lettre majuscule russe I |
137 | 89 | Oui | Lettre majuscule russe Y |
138 | 8A | À | Lettre majuscule russe K |
139 | 8B | L | Lettre majuscule russe L |
140 | 8C | M | Lettre majuscule russe M |
141 | 8D | N | Lettre majuscule russe N |
142 | 8E | À PROPOS | Lettre majuscule russe O |
143 | 8F | P. | Lettre majuscule russe P |
144 | 90 | R. | Lettre majuscule russe R |
145 | 91 | AVEC | Lettre majuscule russe S |
146 | 92 | T | Lettre majuscule russe T |
147 | 93 | U | Lettre majuscule russe U |
148 | 94 | F | Lettre majuscule russe F |
149 | 95 | X | Lettre majuscule russe X |
150 | 96 | C | Lettre majuscule russe T |
151 | 97 | H | Lettre majuscule russe CH |
152 | 98 | Ch | Lettre majuscule russe Ш |
153 | 99 | SCH | Lettre majuscule russe Ш |
154 | 9A | Kommersant | Lettre majuscule russe Ъ |
155 | 9B | Oui | Lettre majuscule russe Y |
156 | 9C | b | Lettre majuscule russe b |
157 | 9D | E | Lettre majuscule russe E |
158 | 9E | YU | Lettre majuscule russe Yu |
159 | 9F | je | Lettre majuscule russe I |
160 | A0 | UN | Petite lettre russe a |
161 | A1 | b | Petite lettre russe b |
162 | A2 | V | Lettre minuscule russe v |
163 | A3 | g | Petite lettre russe g |
164 | A4 | d | Petite lettre russe d |
165 | A5 | e | Petite lettre russe e |
166 | A6 | et | Petite lettre russe z |
167 | A7 | h | Petite lettre russe z |
168 | A8 | Et | Petite lettre russe et |
169 | A9 | ème | Petite lettre russe th |
170 | Les AA | À | Lettre minuscule russe k |
171 | UN B | je | Petite lettre russe l |
172 | A.C. | m | Petite lettre russe m |
173 | ANNONCE | n | Petite lettre russe n |
174 | A.E. | Ô | Lettre minuscule russe o |
175 | UN F. | P. | Petite lettre russe p |
176 | B0 | ░ | |
177 | B1 | ▒ | |
178 | B2 | ▓ | |
179 | B3 | │ | Symbole pseudographique |
180 | B4 | ┤ | Symbole pseudographique |
181 | B5 | ╡ | Symbole pseudographique |
182 | B6 | ╢ | Symbole pseudographique |
183 | B7 | ╖ | Symbole pseudographique |
184 | B8 | ╕ | Symbole pseudographique |
185 | B9 | ╣ | Symbole pseudographique |
186 | B.A. | ║ | Symbole pseudographique |
187 | BB | ╗ | Symbole pseudographique |
188 | AVANT JC. | ╝ | Symbole pseudographique |
189 | BD | ╜ | Symbole pseudographique |
190 | ÊTRE | ╛ | Symbole pseudographique |
191 | B.F. | ┐ | Symbole pseudographique |
192 | C0 | └ | Symbole pseudographique |
193 | C1 | ┴ | Symbole pseudographique |
194 | C2 | ┬ | Symbole pseudographique |
195 | C3 | ├ | Symbole pseudographique |
196 | C4 | ─ | Symbole pseudographique |
197 | C5 | ┼ | Symbole pseudographique |
198 | C6 | ╞ | Symbole pseudographique |
199 | C7 | ╟ | Symbole pseudographique |
200 | C8 | ╚ | Symbole pseudographique |
201 | C9 | ╔ | Symbole pseudographique |
202 | CALIFORNIE. | ╩ | Symbole pseudographique |
203 | C.B. | ╦ | Symbole pseudographique |
204 | CC | ╠ | Symbole pseudographique |
205 | CD | ═ | Symbole pseudographique |
206 | C.E. | ╬ | Symbole pseudographique |
207 | FC | ╧ | Symbole pseudographique |
208 | D0 | ╨ | Symbole pseudographique |
209 | D1 | ╤ | Symbole pseudographique |
210 | D2 | ╥ | Symbole pseudographique |
211 | D3 | ╙ | Symbole pseudographique |
212 | D4 | ╘ | Symbole pseudographique |
213 | J5 | ╒ | Symbole pseudographique |
214 | D6 | ╓ | Symbole pseudographique |
215 | J7 | ╫ | Symbole pseudographique |
216 | D8 | ╪ | Symbole pseudographique |
217 | D9 | ┘ | Symbole pseudographique |
218 | D.A. | ┌ | Symbole pseudographique |
219 | D.B. | █ | |
220 | CC | ▄ | |
221 | DD | ▌ | |
222 | DE | ▐ | |
223 | DF | ▀ | |
224 | E0 | R. | Petite lettre russe r |
225 | E1 | Avec | Lettre minuscule russe s |
226 | E2 | T | Petite lettre russe t |
227 | E3 | à | Lettre minuscule russe u |
228 | E4 | F | Petite lettre russe f |
229 | E5 | X | Lettre minuscule russe x |
230 | E6 | ts | Petite lettre russe c |
231 | E7 | h | Petite lettre russe h |
232 | E8 | w | Petite lettre russe sh |
233 | E9 | sch | Lettre minuscule russe ch |
234 | E.A. | ъ | Petite lettre russe ъ |
235 | E.B. | s | Petite lettre russe ы |
236 | C.E. | b | Petite lettre russe ь |
237 | ED | euh | Petite lettre russe e |
238 | E.E. | Yu | Petite lettre russe yu |
239 | E.F. | je | Petite lettre russe i |
240 | F0 | Yo | Lettre majuscule russe Yo |
241 | F1 | e | Petite lettre russe ё |
242 | F2 | Є | |
243 | F3 | є | |
244 | F4 | Ї | |
245 | F5 | Ї | |
246 | F6 | Ў | |
247 | F7 | ў | |
248 | F8 | ° | Signe de diplôme |
249 | F9 | ∙ | Signe de multiplication (point) |
250 | FA. | · | |
251 | √ | Radical (prendre la racine) | |
252 | F.C. | № | Signe numérique |
253 | FD | ¤ | Signe monétaire (rouble) |
254 | F.E. | ■ | |
255 | FR |
Lors de l'écriture de textes, en plus des codes binaires qui affichent directement des lettres, on utilise des codes qui indiquent le passage à une nouvelle ligne et le retour du curseur (retour chariot) à la position zéro de la ligne. Ces symboles sont généralement utilisés ensemble. Leurs codes binaires correspondent aux nombres décimaux - 10 (0A) et 13 (0D). A titre d'exemple, vous trouverez ci-dessous une section du texte de cette page (vidage mémoire). Son premier paragraphe est écrit dans cette section. Le format suivant est utilisé pour afficher les informations dans un vidage mémoire :
- la première colonne contient l'adresse binaire du premier octet de la ligne
- Les seize colonnes suivantes contiennent les octets contenus dans le fichier texte. Pour déterminer plus facilement le numéro d'octet, une ligne verticale est tracée après la huitième colonne. Par souci de concision, les octets sont représentés en code hexadécimal.
- dans la dernière colonne, ces mêmes octets sont représentés sous forme de caractères alphabétiques affichables
Dans l'exemple ci-dessus, vous pouvez voir que la première ligne de texte occupe 80 octets. Le premier octet 82 correspond à la lettre « B ». Le deuxième octet E1 correspond à la lettre « c ». Le troisième octet A5 correspond à la lettre "e". L'octet suivant 20 affiche l'espace vide entre les mots (espace) " ". Les octets 81 et 82 contiennent des caractères de retour chariot et de saut de ligne 0D 0A. On retrouve ces caractères à l'adresse binaire 00000050 : La ligne suivante du texte source n'est pas un multiple de 16 (sa longueur est de 76 lettres), donc pour trouver sa fin il faudra d'abord trouver la ligne 000000E0 : et compter neuf colonnes de celui-ci. Les octets de retour chariot et de saut de ligne 0D 0A y sont à nouveau écrits. Le reste du texte est analysé exactement de la même manière.
Date de dernière mise à jour du fichier : 12/04/2018
Littérature:
En complément de l'article « Écrire des textes en code binaire », lire :
Représentation de nombres binaires dans la mémoire d'un ordinateur ou d'un microcontrôleur
http://site/proc/IntCod.php
Parfois, il est pratique de stocker les nombres dans la mémoire du processeur sous forme décimale.
http://site/proc/DecCod.php
Formats de nombres à virgule flottante standard pour ordinateurs et microcontrôleurs
http://site/proc/float/
Actuellement, les systèmes numériques positionnels et non positionnels sont largement utilisés à la fois dans la technologie et dans la vie quotidienne.
.php