Académique Documents
Professionnel Documents
Culture Documents
02 Codage Representatif
02 Codage Representatif
Le code Morse
Le code Baudot
Les codes binaires Les codes de détection et
Le code BCD (8421) de correction ces erreurs
Le code BCD (2421) Théorie des codes et terminologie
Le code Excess-3 La notion de bit de parité
Le code Gray Le code Hamming
Les codes alphanumériques Le Code CRC
Le cde ASCII
Le Code ANSI
Le code EBCDIC
Le code Hollerith
1
LES CODES REPRÉSENTATIFS
Les codes alphanumériques ou code de caractère sont des codes binaires qu’on utilise pour représenter des données
alphanumériques, des lettres de l’alphabet, des nombres, des symboles mathématiques, des accents, les marques de
ponctuation de façon très claire et intelligible. Les organes d’entrée et de sortie comme les imprimantes, les claviers, les
écrans, les souris peuvent être interfacées avec ces codes.
Le code Hollerith de 12 bits fut le premier code massivement utilisé au moment de l’utilisation des cartes perforées qui
étaient utilisés comme entrée et sortie. Mais il a disparu depuis avec les nouvelles machines pour faire place aux nouveaux
codes que sont, entre autres, le code ASCII, le code EBCDIC et le code Unicode
Les codes représentatifs contrairement aux codes analytiques ne sont pas restreints aux objets numéraux. Les codes
représentatifs sont encodés en binaire pour représenter des caractères alphanumériques.
Il faut que l’ordinateur utilise aussi des nombres binaires pour faire des calculs, mais aussi pour représenter des
informations non numériques comme les textes et les graphiques. C’est la représentation de ces textes et de ces
graphiques qui est appelée code.
2
Dans un code binaire, le nombre binaire est un symbole, mais ne représente pas actuellement un nombre binaire à
manipuler.
LES CODES REPRÉSENTATIFS
Les codes pondérés, les codes non pondérés, les codes réfléchis, les codes séquentiels, les codes alphanumériques, les code détections et de correction d’erreurs.
Les codes pondérés associent un coefficient aux positions occupées par les chiffres.
Le nombre décimal 567 peut s’écrire 5*102 + 6*101 + 7*100 = 5*100 + 6*10 + 7*1
Le nombre binaire pur 101 binaire peut s’écrire 1*22+0*21+1*20 = 1*4+0*2+1*1
Le nombre binaire codé décimal (BCD) 567 s’écrit 0101 0110 0111
0*23+1*22+0*21+1*20 0*23+1*22+1*21+0*20 0*23+1*22+1*21+1*20
0*8+1*4+0*2+1*1 0*8+1*4+1*2+0*1 0*8+1*4+1*2+1*1
Le nombre 93 en binaire codé décimal (BCD 8421) s’écrit 1001 0011
1*8+0*4+0*2+1*1 0*8+0*4+1*2+1*1
Le nombre 93 en binaire codé décimal (BCD 5421) s’écrit 1100 0011
1*5+1*4+0*2+0*1 0*5+0*4+1*2+1*1
Nous pouvons faire la même chose avec les codes 2412, 3321, 4221, 5211, 5311, 5421, 3
6311, 7421, 8421, 7421, 8421
LES CODES REPRÉSENTATIFS
Les codes non pondérés n’affectent de coefficient aux chiffres. Il n’est pas possible de faire des
opérations arithmétiques ave ces codes. Le code gray, certains code BCD, les codes excess-3, les
codes de 5 bits
Le code Morse
Le morse a été le premier codage à permettre une communication longue distance. C'est Samuel F.B.Morse qui l'a mis
au point en 1844. Ce code est composé de points et de tirets (un codage binaire en quelque sorte...). Il permit
d'effectuer des communications beaucoup plus rapides que ne le permettait le système de courrier de l'époque aux
Etats-Unis : le Pony Express. L'interpréteur était l'homme à l'époque, il fallait donc une bonne connaissance du code...
De nombreux codes furent inventés dont le code d'Émile Baudot (portant d'ailleurs le nom de code Baudot, les anglais
l'appelaient en revanche Murray Code).
Le 10 mars 1876, le Dr Graham Bell met au point le téléphone, une invention révolutionnaire qui permet de faire circuler
de l'information vocale dans des lignes métalliques. Pour l'anecdote, la Chambre des représentants a décidé que
l'invention du téléphone revenait à Antonio Meucci. Ce dernier avait en effet déposé une demande de brevet en 1871,
mais n'avait pas pu financer celle-ci au-delà de 1874. Ces lignes métalliques permirent l'essor des téléscripteurs, des
machines permettant le codage et le décodage des caractères grâce au code Baudot (les caractères étaient alors
définis sur 5 bits, il y avait donc 32 caractères uniquement...). Dans les années 60, le code ASCII (American Standard
5
Code for Information Interchange) est adopté comme standard. Il permet de coder les caractères sur 8 bits, soit 256
caractères possibles.
LES CODES
REPRÉSENTATIFS
6
LES CODES REPRÉSENTATIFS
Le code ASCII
Le code ASCII (American Standard Code for Information Interchange) est l’un des codes les plus anciens et le plus utilisés.
Sa naissance remonte des année 60 pour palier à la prolifération de plusieurs codes non standardisé.
L’Organisation Internationale pour la Normalisation (OIN) plus connu sous son nom anglais International Standard Organisation (ISO), a
créé en 1960 un comité technique sur l’ordinateur et le traitement des données. Un des groupes de travail de ce comité, le groupe B
devait se charger de jeux de caractère et de leur codification. Aux Etats-Unis c’est l’American Standard Association (L’association
Américaine pour la Normalisation) qui était le chapitre local de ce groupe de travail.
C’est en 1961 que Bob Bemer, un ingénieur aéronautique américain du département de la défense, mit au point un code de 8 bits qui
eut une influence notable sur le code ASCII. En 1963 la première version du Code ASCII fut publiée.
Auparavant, chaque matériel avait son propre codage, lié aux techniques qu'il utilisait : lecteur/perforateur de cartes 1442, imprimantes
1132 et 1403. Tout ordinateur, comme par exemple l'IBM 1130, était livré avec ses sous-programmes et ses tables permettant de
transposer les codes d'un matériel à un autre. D'autres standards étaient utilisés, notamment pour les cartes perforées (Bull et IBM
avaient chacun leur code, tous deux incompatibles.
7
LES CODES REPRÉSENTATIFS
Le code ASCII
L'ASCII définit seulement 128 caractères numérotés de 0 à 127 et codés en binaire de 0000000 à 1111111. Sept bits
suffisent donc pour représenter un caractère codé en ASCII. Toutefois, les ordinateurs travaillant presque tous sur un
multiple de huit bits (multiple d'un octet) depuis les années 1970, chaque caractère d'un texte en ASCII est souvent stocké
dans un octet dont le 8ème bit est 0.
Les caractères de numéro 0 à 31 et le 127 ne sont pas affichables ; ils correspondent à des commandes de contrôle de
terminal informatique. Le caractère numéro 127 est la commande pour effacer. Le caractère numéro 32 est l'espace. Les
autres caractères sont les chiffres arabes, les lettres latines majuscules et minuscules sans accent, des symboles de
ponctuation, des opérateurs mathématiques et quelques autres symboles.
Des fois le 8ème bit est utilisé pour donner le code ASCII étendu avec la possibilité de faire 28, soit 256 symboles.
Des représentations plus évoluées comme l’Unicode qui comporte 16 bits peuvent représenter jusqu’ 216, soit 65536
symboles. Avec ce code plusieurs alphabets peuvent être représentés.
L'absence des caractères des langues étrangères à l'anglais rend ce standard insuffisant à lui seul pour des textes8
étrangers comme le français, ce qui rend nécessaire l'utilisation d'autres encodages.
LES CODES REPRÉSENTATIFS
9
Le code ANSI utilisé par windows
Les logiciels de Microsoft utilisent la norme ANSI ( American National Standard Institute) qui reprend
en grande partie le code ASCII en proposant des extensions selon le code de « page retenu ».
Microsoft a créé ANSI comme un schéma de codage de caractère exclusif qui comprend plus de 200
caractères - lettres, chiffres, signes de ponctuation et des caractères spéciaux communs de langues
autres que l'anglais .ANSI est également connu sous le nom de Windows 1252.
.
Microsoft a fait de multiples révisions à la norme ANSI et publié des pages de code mis à jour en cas de
non - anglais, mais il n'a jamais contenait suffisamment de personnages uniques à rendre compte pour les
langues asiatiques , qui ont généralement beaucoup plus de caractères que langues basées sur l'alphabet
romain.
Nous pouvons distinguer plusieurs codes page. Le code page 850 est un jeu de caractère multilingue. Le
code 864 et pour les caractère arabes
LES CODES REPRÉSENTATIFS
Unicode
Unicode est un standard informatique qui permet des échanges de textes dans différentes langues, à un niveau mondial.
Il est développé par le Consortium Unicode, une organisation à but non lucratif qui est née d'une collaboration entre
Apple et Xerox , a créé le standard ouvert Unicode pour l'encodage de texte. vise au codage de texte écrit en
donnant à tout caractère de n'importe quel système d'écriture un nom et un identifiant numérique, et ce de manière
unifiée, quels que soient la plate-forme informatique ou le logiciel utilisés.
Ce standard est lié à la norme ISO/CEI 10646 qui décrit une table de caractères équivalente. La dernière version,
Unicode 12.0, a été publiée en mars 2019
Unicode est totalement compatible avec le jeu universel de caractères (JUC) de l'ISO/CEI 10646, le standard Unicode
l'étend en lui ajoutant un modèle complet de représentation et de traitement de textes, en conférant à chaque
caractère un jeu de propriétés normalisées ou informatives, en décrivant avec précision les relations sémantiques qui
peuvent exister entre plusieurs caractères successifs d'un texte, et en normalisant des algorithmes de traitement 11
qui
préservent au maximum la sémantique des textes transformés.
LES CODES REPRÉSENTATIFS
Unicode
Unicode a pour objet de rendre un même texte utilisable à l'identique sur des systèmes
informatiques totalement différents.
Le standard Unicode est constitué d'un répertoire de 137 929 caractères, couvrant une centaine
d’écritures, d'un ensemble de tableaux de codes pour référence visuelle, d'une méthode de codage
et de plusieurs codages de caractères standard, d'une énumération des propriétés de caractère
(lettres majuscules, minuscules, APL, symboles, ponctuation, etc.) d'un ensemble de fichiers de
référence des données informatiques, et d'un certain nombre d'éléments liés, tels que des règles
de normalisation, de décomposition, de tri, de rendu et d'ordre d'affichage bidirectionnel (pour
l'affichage correct de texte contenant à la fois des caractères d'écritures de droite à gauche,
comme l'arabe et l'hébreu, et de gauche à droite).
12
LES CODES REPRÉSENTATIFS
Le code BCD (Binary Coded Decimal) est aussi un code très utilisé qui
permet de représenter des nombres sous leur écriture décimale. Il
s’agit de coder les chiffres de 0 à 9 en binaire sur 4 bits.
La somme ne dépasse pas 9 et la retenue est égale à 0, dans ce cas l’addition se fait comme en binaire
pur et le résultat obtenu est correct.
14
LES CODES REPRÉSENTATIFS
8+9 : Nous voyons que le résultat obtenu est incorrect car il n’est pas égal à 17, il faut donc pour corriger ajouter 6 (0110), ce qui va
nous donner 10001+0110 = 10111. Si nous éclatons ce nombre en deux groupes de 4 à partir de la gauche, nous obtenons 0001 0111
qui l’équivalent de 17 en BCD.
18+19 : Nous voyons que le résultat obtenu est incorrect car il n’est pas égal à 37, il faut donc pour corriger ajouter 6 (0110) sur la
partie de droite qui a la retenue de 1, ce qui va nous donner 0010 10001+0110 = 001010111. Si nous éclatons ce nombre en deux
groupes de 4 à partir de la gauche, nous obtenons 0101 0111 qui l’équivalent de 37 en BCD. 15
LES CODES REPRÉSENTATIFS
La somme dépasse 9 et la retenue est égale à 0, dans ce cas l’addition se fait comme en binaire pur mais le résultat obtenu est
incorrect. Pour arriver au bon résultat, il faut additionner 6 (0110) au résultat provisoire.
57+26 : Nous voyons que le résultat obtenu est incorrect car il n’est pas égal à 83, il faut donc pour corriger ajouter 6 (0110) à la partie se
trouvant à droite, sachant que cette dernière qui est égale à 13 est supérieur 9, ce qui va nous donner 0111 1101+0110 = 10000011. Si
nous éclatons ce nombre en deux groupes de 4 à partir de la gauche, nous obtenons 10000 0011 qui l’équivalent de 83 en BCD.
16
LES CODES REPRÉSENTATIFS
17
LES CODES REPRÉSENTATIFS
Pour convertir un nombre décimal en XS-3 code, il faut le convertir en 2 0101 7 1010
DCB et ajouter à chaque élément 001 (3)
3 0110 6 1001
127 en BCD donne ( 0001 0010 0111)
Pour avoir 127 en XS-3 on ajoute 011 à chaque élément
4 0111 5 1000
127 en XS-3 donne ( 0001+011 0010+011 0111+011)
127 en XS-3 donne ( 0100 0101 1010) 19
LES CODES REPRÉSENTATIFS
Le code 2421
Le code 2421 permet de représenter une valeur numérique
inférieure ou égale à 9 avec 4 bits.
C’est un code réfléchi. Le 0 est le complément du 9, le 2, 0 0000
le complément du 8, etc. 1 0001
Pour représenter 0, nous avons 0000. Pour représenter 2, 2 0010
nous pouvons utiliser le 2 de la première colonne ou le 2 3 0011
de la troisième colonne, mais pour vous allez voir plus tard 4 0100
que pour que ce code reste réfléchi, c’est le 2 de la 5 1011
troisième colonne que nus allons utiliser. 2 s’écrit donc 6 1100
0010. Pour 3, nous aurons 0011. Pour 4 au lieu d’utiliser le 7 1101
deux 2, nous préférons utiliser 4, ce qui donne 0100. Quand 8 1110
nous arrivons à 5, pour qu’il soit le complément de 4 nous 9 1111
allons utiliser 221 au lieu de 41, ce qui nous donne 1011. 6
devient le complément de 3, 7 de 2, 8 de 1 et 9 de 0 21
LES CODES REPRÉSENTATIFS
0 0000 0 0000
1 0111 1 0111
2 0110 2 0110
3 0101 3 0101
4 0100 4 0100
5 1010 5 1011
6 1001 6 1010
7 1000 7 1001
8 1111 8 1000
9 1110 9 1011 23
LES CODES REPRÉSENTATIFS
24
LES CODES REPRÉSENTATIFS
Étant donné que quatre bits peuvent en théorie représenter 16 valeurs distinctes et que l'on se restreint à
dix valeurs possibles, on note une augmentation du nombre de bits requis pour représenter un nombre
lors de l'utilisation du format DCB. Ainsi par exemple, pour représenter la valeur 12 (1100 en binaire
naturel, 0001 0010 en DCB), il faudra utiliser 4 bits de plus au format DCB qu'en binaire naturel. Plus
généralement 8 bits permettent de coder une valeur comprise entre 0 (0000 0000) et 99 (1001 1001) en
DCB, là où l'utilisation d'un code binaire naturel permettrait de représenter des valeurs allant jusqu'à 255
(1111 1111).
25
LES CODES REPRÉSENTATIFS
Le code UTF-8
UTF-8 (Universal Character Set Transformation Format- 8 bits) est un codage de
caractères informatiques conçu pour coder l’ensemble des caractères du « répertoire
universel de caractères codés », initialement développé par l’ISO dans la norme
internationale ISO/CEI 10646, aujourd’hui totalement compatible avec le standard Unicode, en
restant compatible avec la norme ASCII limitée à l’anglais de base, mais très largement
répandue depuis des décennies.
L’UTF-8 est utilisé par 82,2 % des sites web en décembre 20142, 87,6 % en 20163, 90,5 % en
20174 et près de 93.1% en février 20195. Par sa nature, UTF-8 est d’un usage de plus en plus
courant sur Internet, et dans les systèmes devant échanger de l'information. Il s’agit
également du codage le plus utilisé dans les systèmes GNU, Linux et compatibles pour gérer
le plus simplement possible des textes et leurs traductions dans tous les systèmes d’écritures
et tous les alphabets du monde. 26
LES CODES REPRÉSENTATIFS
GBCD (6-bit)
Le code BCD (6-bit) (Binary Coded Decimal), aussi 000 001 002 003 004 005 006 007
connu sous le nom BCD pour 6-bit alphanumérique,
est un code standard de 6 bits utilisé par les grands 000 0 1 2 3 4 5 6 7
ordinateurs : Burroughs, Bull, CDC, IBM, General
Electric, NCR Corporation, Siemens, Sperry Univac, etc. 001 8 9 [ # @ : > ?
IBM a créé un code pour les cartes 002 A B C D E F G
perforées des années 1960 qui s'est étendue à d'autres
fabricants. 003 H I & . ] ( < \
Le code BCD (6-bit) fut l'adaptation du code carte
perforée en code binaire, de telle sorte qu'il pouvait se 004 ^ J K L M N O P
charger plus facilement dans la mémoire de l'ordinateur 005 Q R - $ * ) ; '
central.
Le code BCD (6-bit) est donc un code binaire, 006 ` / S T U V W X
représentant des caractères alphanumériques et des
symboles. Chaque caractère étant composé de
007 Y Z < , % = " †
6 bits (2 caractères octal), avec ces 6-bit on peut définir 000 001 002 003 004 005 006 007
un total de 64 caractères (26). 27
LES CODES REPRÉSENTATIFS
Le code EBCDIC
L'Extended Binary Coded Decimal Interchange Code
(EBCDIC) est un mode de codage des caractères sur 8
bits créé par IBM à l'époque des cartes perforées. Il existe
au moins 6 versions différentes bien documentées,
incompatibles entre elles. Ce mode de codage a été
critiqué pour cette raison, mais aussi parce que certains
caractères de ponctuation ne sont pas disponibles dans
certaines versions. Ces disparités ont parfois été
interprétées comme un moyen pour IBM de conserver ses
clients captifs.
Le code binaire réfléchi est employé essentiellement pour ses propriétés de symétrie et d'adjacence dans le
codage de position ou pour la simplification des équations logiques par la méthode de Karnaugh. Ce code ne peut
pas être utilisé pour des opérations arithmétiques
On dit que deux nombres ou combinaisons binaires sont adjacentes lorsqu'elles ne diffèrent que d'un
seul bit par exemple, 1100 et 1101 sont adjacents car ils ne diffèrent que par leur LSB
Le code Gray est fréquemment utilisé dans les capteurs angulaires ou de positionnement, mais aussi lorsque l'on
désire une progression numérique binaire sans parasite transitoire. 29
LES CODES REPRÉSENTATIFS
Conversion d’un binaire réfléchi (Gray) en binaire pur Nombre Code binaire pur
décimal
Code de Gray
B3 B2 B1 B0 G3 G2 G1 G0
g3 g2 g1 g0 0 0 0 0 0 0 0 0 0
1 0 0 0 1 0 0 0 1
1 1 1 0 a gray ou binaire réfléchi 2 0 0 1 0 0 0 1 1
1 0 1 b 3 0 0 1 1 0 0 1 0
1 0 1 1 c binaire pur 4 0 1 0 0 0 1 1 0
5 0 1 0 1 0 1 1 1
b3 b2 b1 b0
6 0 1 1 0 0 1 0 1
7 0 1 1 1 0 1 0 0
Nous pouvons généraliser la conversion comme ceci : 8 1 0 0 0 1 1 0 0
9 1 0 0 1 1 1 0 1
10 1 0 1 0 1 1 1 1
b3=g3 11 1 0 1 1 1 1 1 0
b2=b3 xor g2 12 1 1 0 0 1 0 1 0
b1=b2 xor g1 13 1 1 0 1 1 0 1 1
14 1 1 1 0 1 0 0 1
b0=b1 xor g0
15 1 1 1 1 1 0 0 0
33
LES CODES REPRÉSENTATIFS
A coté de ces codes considérés comme standard, il y a des dispositifs de correction d’erreurs que sont le bit de parité, le code Hamming,
le LRC (Logical Redondancy Check), la CRC (Cyclique Redonancy Check).
Le contrôle de parité
Le contrôle de parité est une technique de détection d’erreur dans laquelle un bit (1 ou 0) est ajouté à chaque caractère pour que le
nombre de bits total soit toujours pair (ou impair).
Le contrôle de parité (VRC – Vertical Redundancy Check ou Vertical Redundancy Checking) est un des systèmes de contrôle les plus
simples. Il consiste à ajouter un bit supplémentaire, appelé bit de parité à un certain nombre de bits de données appelé mot de code
(généralement 7 bits, pour former un octet avec le bit de parité) dont la valeur (0 ou 1) est telle que le nombre total de bits à 1 soit pair. En
clair, le contrôle de parité consiste à ajouter un 1 si le nombre de bits du mot de code est impair, 0 dans le cas contraire.
34
Les codes auto-vérificateurs ou auto-correcteurs sont utilisés quand le control de parité ne suffit pas. Quand la transmission entre
machine se fait sur de longues distances pouvant entrainer des parasites sur les lignes de transmission.
LES CODES REPRÉSENTATIFS
Le code Hamming D7 D6 D5 P4 D3 P2 P1
Depuis 1946 Richard Hamming (1915-1998) travaille sur un modèle de
calculateur à carte perforée de faible fiabilité. Si, durant la semaine, des D5D6D7 D3D6D7 D3D5D7
ingénieurs pouvaient corriger les erreurs, les périodes chômées comme la
fin de semaine voient les machines s'arrêter invariablement sur des bugs. D7 D6 D5 P4 D3 P2 P1
La frustration de Hamming le conduit à inventer le premier code correcteur 101 101 111
véritablement efficace.
1 0 1 0 1 0 1
Cette période correspond à la naissance de la théorie de l'information.
Claude Shannon formalise cette théorie comme une branche des
mathématiques. Hamming développe les prémisses de la théorie des Les places restantes (D3, D5, D6, D7) sont occupés par les 4
codes et décrit sa solution comme un exemple. bits de données.
Un code Hamming peut comprendre plusieurs bits. Nous allons étudier un A chaque bit de parité on associes 3 bits de données.
code Hamming de 7 bits.
P1D3D5D7 doit avoir un nombre de 1 pair
P2D3D6D7 doit avoir un nombre de 1 pair
Le code de 7 bits réserve 4 places pour les bits de données et 3 places
P4D5D6D7 doit avoir un nombre de 1 pair
pour les bits de parité.
Le mots corrects qui doit être transmis est 1010101.
Les bits de parité doivent occuper les place 2n, soit 20 (1ère place), 21=2 36
Il nous arrive d’avoir des parasites et le mot reçu présente des erreurs
(2ème place), 22=4(4ème place). Étant donné que nous travaillons sur 7 bits, que nous nous proposons de détecter et de corriger à partir des bits de
nous ne pouvons pas avoir 23 qui donne 8 et qui dépasse les 7 bits. parité et les bits de données qui leur sont associés.
LES CODES REPRÉSENTATIFS
Le code Hamming D7 D6 D5 P4 D3 P2 P1
Nous nous proposons de détecter et de corriger le mot suivant: 101 001 011
1011011 1 0 1 1 0 1 1