0% ont trouvé ce document utile (0 vote)
160 vues16 pages

Introduction au Codage Binaire

Transféré par

vampireleano
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
160 vues16 pages

Introduction au Codage Binaire

Transféré par

vampireleano
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

S1 : Architecture des systèmes d’information

S1.2 : Structure et fonctionnement des


ordinateurs
Partie 1 : Codage de l’information

Sommaire
I. Définitions ---------------------------------------------------------------------------------------------------------- 2
Qu’est-ce qu’un codage ? ----------------------------------------------------------------------------------- 2
Codage binaire ------------------------------------------------------------------------------------------------- 2
Binary digit ----------------------------------------------------------------------------------------------------- 2
Octet, Mot, Double mot ------------------------------------------------------------------------------------- 2
II. Unités de mesure ------------------------------------------------------------------------------------------------- 3
III. Représentation des nombres entiers et réels ------------------------------------------------------------- 4
Représentation des nombres entiers naturels --------------------------------------------------------- 4
Représentation des nombres entiers relatifs ----------------------------------------------------------- 4
Représentation des nombres réels ----------------------------------------------------------------------- 8
IV. Représentation des caractères ------------------------------------------------------------------------------ 10
Code ASCII ----------------------------------------------------------------------------------------------------- 10
Code ASCII étendu ------------------------------------------------------------------------------------------ 10
Le code EBCDIC ---------------------------------------------------------------------------------------------- 11
Unicode -------------------------------------------------------------------------------------------------------- 11
V. Autres codages -------------------------------------------------------------------------------------------------- 12
Codage BCD --------------------------------------------------------------------------------------------------- 12
Codage gray--------------------------------------------------------------------------------------------------- 13
Annexe ------------------------------------------------------------------------------------------------------------------- 15

Références : www.editions-ellipses.fr
www .commentcamarche.com
www.positron-libre.com
www.wikipedia.com

Cours_S1_S1.2_P1
Etablissement Lycée technique - Settat
Filière BTS
Semestre 1
Partie 1 : Codage de l’information Définitions

I. Définitions
Qu’est-ce qu’un codage ?
Permet d’établir une correspondance qui permet sans ambiguïté de passer d’une représentation (dite
externe) d’une information à une autre représentation (dite interne : sous forme binaire) de la même
information, suivant un ensemble de règle précise ; Par exemple à 6 dans le système décimal
correspond 0110 dans le système binaire. Souvent, on appelle codage (ou encodage), l’opération qui
consiste à convertir une donnée quelconque en une grandeur binaire. L’opération inverse s’appelle
décodage. Enfin lorsque la conversion se fait entre deux grandeurs binaires, on parle de transcodage.

Codage binaire
Vers la fin des années 30, Claude Shannon démontra qu'à l'aide de « contacteurs » (interrupteurs)
fermés pour « vrai » et ouverts pour « faux » il était possible d'effectuer des opérations logiques en
associant le nombre 1 pour « vrai » et 0 pour « faux ».
Ce codage de l'information est nommé codage binaire. C'est avec ce codage que fonctionnent les
ordinateurs, puisque ces derniers sont constitués de circuits électroniques (bistables) qui ne possèdent
que deux états stables : fermé ou ouvert, chargé ou déchargé etc... Ce codage consiste à utiliser deux
états (représentés par les chiffres 0 et 1) pour coder les informations quel que soit sa nature (image,
nombres, texte, son …).

Binary digit : Bit


Le terme bit signifie « binary digit : chiffre binaire », c'est-à-dire 0 ou 1 en numérotation binaire. Il
s'agit de la plus petite unité d'information manipulable par une machine numérique. Il est possible de
représenter physiquement cette information binaire :
• par un signal électrique, magnétique ou lumineux, qui, au-delà d'un certain seuil, correspond à
la valeur 1
• par des aspérités géométriques dans une surface
• par l’état d’un bistable, c'est-à-dire un composant électronique qui a deux états d'équilibre (l'un
correspond à l'état 1, l'autre à 0).
• Par une fréquence ou une amplitude pour les modems
• …..
Avec un bit il est ainsi possible d'obtenir deux états : soit 1, soit 0. Grâce à 2 bits, il est possible
d'obtenir quatre états différents (22), d’une manière générale avec n bits on peut obtenir 2n états
différents.

Octet, Mot, Double mot


L'octet (en anglais byte ou B avec une majuscule dans les notations) est une unité d'information
composée de 8 bits. Il permet par exemple de stocker un caractère, tel qu'une lettre ou un chiffre.
Ce regroupement de nombres par série de 8 permet une lisibilité plus grande, au même titre que l'on
apprécie, en base décimale, de regrouper les nombres par trois pour pouvoir distinguer les milliers. Le
nombre « 1 256 245 » est par exemple plus lisible que « 1256245 ».
Le Mot est une unité d'information composée de 16 bits (en anglais word). Une unité d'information de
32 bits de longueur est appelée mot double (en anglais double word, d'où l'appellation dword).

2
Partie 1 : Codage de l’information Définitions

Pour un octet, le plus petit nombre est 0 (représenté par huit zéros 00000000), et le plus grand est 255
(représenté par huit chiffres « un » 11111111), ce qui représente 256 = 28 possibilités de valeurs
différentes.

II. Unités de mesure


Longtemps l'informatique s'est singularisée par l'utilisation de différentes valeurs pour les unités du
système international. Ainsi beaucoup d'informaticiens ont appris que 1 kilo-octet valait 1024 octets.
Or, depuis décembre 1998, l'organisme international IEC (International Electrotechnical Commission)
a statué sur la question. Voici donc les unités standardisées :
• Un kilo-octet (ko ou kB) = 1000 octets
• Un Méga-octet (Mo ou MB) = 1000 ko = 1 000 000 octets
• Un Giga-octet (Go ou GB) = 1000 Mo = 1 000 000 000 octets
• Un Téra-octet (To) = 1000 Go = 1 000 000 000 000 octets

Attention ! De nombreux logiciels (parfois même certains systèmes d'exploitation) utilisent toujours la
notation antérieure à 1998 pour laquelle :
Un kilooctet (ko) = 210 octets = 1024 octets
Un Mégaoctet (Mo) = 220 octets = 1024 ko = 1 048 576 octets
Un Gigaoctet (Go) = 230 octets = 1024 Mo = 1 073 741 824 octets
Un Téraoctet (To) = 240 octets = 1024 Go = 1 099 511 627 776 octets

L'IEC a également défini le kilo binaire (kibi), le méga binaire (Mébi), le giga binaire (Gibi), le tera
binaire (Tebi). Voici leurs définitions :
• Un kibioctet (kio ou kiB) vaut 210 = 1024 octets B signifie Byte = octet
• Un Mébioctet (Mio ou MiB) vaut 2 = 1 048 576 octets
20

• Un Gibioctet (Gio ou GiB) vaut 230 = 1 073 741 824 octets


• Un Tébioctet (Tio ou TiB) vaut 240 = 1 099 511 627 776 octets
Il est également utile de noter que la communauté internationale dans son ensemble utilise
préférentiellement le nom de « byte » plutôt que le terme « octet » purement francophone. Cela donne
les notations suivantes pour kilo-byte, méga-byte, giga-byte et tera-byte : KB, MB, GB, TB
Notez l'utilisation d'un B majuscule pour différencier Byte et bit.

3
Partie 1 : Codage de l’information Représentation des entiers et des réels

III. Représentation des nombres entiers et réels


On appelle représentation (ou codification) d'un nombre la façon selon laquelle il est décrit sous forme
binaire. La représentation des nombres sur un ordinateur est indispensable pour que celui-ci puisse les
stocker, les manipuler. Toutefois le problème est qu'un nombre mathématique peut être infini, négatif
ou positif, réel contenant une virgule, dans les paragraphes qui suivent on verra comment peut-on
représenter de tels nombres en utilisant seulement deux chiffres 0 et 1.

Représentation des nombres entiers naturels


C’est le codage le plus simple, pour coder les naturels non signés on utilise le code binaire pur, par
exemple sur 1 octet, 7 sera exprimé de la manière suivante :
0 0 0 0 0 1 1 1
Sur un mot :
0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1

On remarque que plus il y a de bits plus on peut représenter de nombres.


Pour coder des nombres entiers naturels compris entre 0 et 255=28-1, il nous suffira 8 bits (un octet)
car 28=256.
D'une manière générale un codage sur n bits permettra de représenter 2n nombres entiers naturels entre
0 et 2n-1. 0 est la valeur minimale, 2n-1 est la valeur maximale.
Remarque : Les types unsigned (short, int, long) en C utilise ce type de représentation

Représentation des nombres entiers relatifs


Un entier relatif est un entier pouvant être négatif. Il faut donc coder le nombre de telle façon que l'on
puisse savoir s'il s'agit d'un nombre positif ou d'un nombre négatif, et il faut de plus que les règles
d'addition soient conservées. Il existe deux solutions :
a. Signe-valeur_absolue
Consiste à ajouter un bit au nombre. Celui-ci est appelé bit de signe. La convention la plus simple
consiste à attribuer au signe positif l’état 0 et au signe négatif l’état
Exemple :
0 0 0 0 1 0 1 1 + 11
Bit réservé au
signe
1 0 0 0 1 0 1 1 - 11

Inconvénients :
On utilise le bit de signe pour indiquer si le nombre binaire mémorisé est positif ou négatif. Les
nombres reproduits à en dessus sont formés d'un signe de bit et de sept bits de grandeur. Ces derniers
correspondent à l'équivalent binaire exact de la valeur décimale présentée.
Bien que la notation signe-grandeur soit directe, les ordinateurs et les calculatrices n'y ont
généralement pas recours, en raison de la complexité pour réaliser des opérations arithmétiques avec
cette notation.
En outre le zéro a deux représentations : 0000 0000 et 1000 0000

4
Partie 1 : Codage de l’information Représentation des entiers et des réels

b. Complément à 2
C’est la notation utilisée par les machines pour représenter les nombres binaires signés. Pour exprimer
un nombre négatif on l’écrit en complément à 2. En exploitant la propriété du complément à 2 :
C2(C2(N)) = N (c’est équivalent en décimal à : - ( - N) = N)
Exemple : (11)10 vaut 0000 1011, tandis que -11 s’exprime en complément à 2 par 1111 0101

C2(0000 1011) = C1(0000 1011) + 1 = 1111 0100 + 1 = 1111 0101 = (- 11)10


de même pour C2(1111 0101) = C1(1111 0101) + 1 = 0000 1010 + 1 = 0000 1011 = (+ 11)10

La complémentation à 2 d'un nombre signé transforme un nombre positif en un nombre négatif et vice
versa.

Prenons un exemple d’une addition : + 45 + (-30) = 15 vérifions cette égalité en utilisant le


complément à 2 de 30 sur 8 bits,
0 0 1 0 1 1 0 1 (+45)10
Retenue sera rejetée puisque + 1 1 1 0 0 0 1 0 (-30)10
l’opération est sur 8 bits
1 0 0 0 0 1 1 1 1 (+15)10

Question : la valeur 1111 0000 vaut en décimal + 240 ou – 16 ?


Comment une machine saura qu’une valeur est en complément à 2 (négative) ou non (positive)?

Réponse : On réserve un bit pour le signe, c’est le bit de poids le plus fort
• Si le bit de signe est à 1 donc il s’agit d’un nombre négatif (en complément à 2)
• Si le bit de signe est à 0 donc c’est un nombre positif
Voici comment on écrit des nombres binaires signés en utilisant la notation en complément à 2.
• Si le nombre est positif, sa grandeur est l’équivalent binaire du nombre avec un 0 sur le bit de
signe.

0 0 0 0 1 1 0 1 +13

Bit de signe 13 en code binaire pur

• Si le nombre est négatif, sa grandeur est le complément à 2 du nombre avec un 1 sur le bit de
signe.
1 1 1 1 0 0 1 1 -13

Bit de signe 13 en complément à 2

Remarquer que sur un octet, on utilise seulement 7 bits pour représenter la grandeur.
Autre avantage :
La notation en complément à 2 est employée pour exprimer les nombres binaires signés parce que,
comme nous avons vu, on parvient grâce à elle à soustraire en effectuant en réalité une addition. Cela
n'est pas négligeable dans le cas des ordinateurs, puisque avec les mêmes circuits, nous parvenons à
soustraire et à additionner.
Dans de nombreuses situations, le nombre de bits est fixé par la longueur des registres qui contiennent

5
Partie 1 : Codage de l’information Représentation des entiers et des réels

les nombres binaires, d'où la nécessité d'ajouter des 0 pour avoir le nombre de bits requis.
c. Plage de données
Sur un octet = 8 bits on peut représenter 28 = 256 nombres signés
• Les nombres négatifs sont compris entre -128 et -1, donc 128 valeurs négatives
• Les nombres positifs sont compris entre +1 et +127, donc 127 valeurs négatives
• Et le 0
Le total des nombres = 128 + 127 +1 = 256 = 28
Cas spécial :
• La plus petite valeur négative est -128 qui est en C2 1000 0000 n’a pas d’opposé positif,
puisque +128 n’appartient pas à l’intervalle [-128 , 127]
• Le zéro en complément à 2 est exprimé par 0000 0000.
D’une manière générale :
Sur n bits on peut représenter 2n valeurs.
• 2n-1 valeurs négatives comprises entre -2n-1 et -1
• 2n-1 – 1 valeurs positives comprises entre 1 et 2n-1
• Et le zéro
D’où la plage de variation des nombres entiers signés avec une représentation en complément à 2 sur
n bits : [ -2n-1 , 2n-1-1] 2n valeurs différentes avec le zéro.
d. Opérations sur le complément à 2
Nous allons maintenant étudier les opérations arithmétiques courantes sur les nombres en complément
à 2. Dans tous les cas étudiés, il est important que vous remarquiez que le bit de signe de chaque
nombre est traité sur le même pied que les bits de la partie grandeur.
i. Addition de deux nombres positifs
L'addition de deux nombres positifs est immédiate. Soit l'addition de +19 et +14

0 0 0 1 0 0 1 1 +19
0 0 0 0 1 1 1 0 +14
0 0 1 0 0 0 0 1 +33

Bit de signe
Remarquez que les bits de signe des deux nombres sont 0 et que celui de la somme est aussi 0, ce qui
indique un nombre positif. Notez aussi qu'on a fait en sorte que les deux nombres aient le même
nombre de bits. Il faut toujours s'assurer de cela dans la notation en complément à 2.
ii. Nombre positif et nombre négatif plus petit

0 1 0 1 0 0 1 1 +83
1 0 1 1 1 0 1 0 -70
1 0 0 0 0 1 1 0 1 +13

Bit de signe
Dans ce cas-ci, le bit de signe de -70 est 1. Remarquez que les bits de signe sont aussi additionnés. En
fait, un report est produit au moment de l'addition du dernier rang. Ce report est toujours rejeté d'où la

6
Partie 1 : Codage de l’information Représentation des entiers et des réels

somme finale de 00001101, soit le nombre décimal +13.


iii. Nombre positif et nombre négatif plus grand

1 0 1 0 1 1 0 1 -83
0 1 0 0 0 1 1 0 +70
1 1 1 1 0 0 1 1 -13

Bit de signe

Dans ce cas-ci le bit de signe de la somme est 1, ce qui indique un nombre négatif. Comme la somme
est un nombre négatif, la réponse est le complément à 2 de la grandeur exacte. Donc 1111 0011 est en
réalité le complément à 2 de la somme. Pour trouver l’opposé positif de la somme, on doit prendre le
complément à 2 de 1111 0011, ce qui donne 0000 1101 = (+13 ) ; la réponse est donc 11110011 = -13.
iv. Deux nombres négatifs
1 1 1 0 1 1 0 1 -19
1 1 0 0 0 1 1 0 -58
1 1 0 1 1 0 0 1 1 -77

Bit de signe

v. Dépassement (over flow)


Dans chacun des exemples d'addition et de soustraction que l'on vient d'étudier, les nombres que l'on a
additionnés étaient constitués à la fois d'un bit de signe et de 7 bits de grandeur. Les réponses aussi
comportaient un bit de signe et 7 bits de grandeur. Tout report fait sur le bit de huitième rang était
rejeté. Dans tous les cas étudiés, la grandeur de la réponse ne dépassait jamais la capacité des 8 bits.
Voyons l'addition de +100 à +30.
0 1 1 0 0 1 0 0 +100
0 0 0 1 1 1 1 0 +30
1 0 0 0 0 0 1 0 -126

Bit de signe
Le bit de signe de la réponse est celui d'un nombre négatif, ce qui est manifestement une erreur. La
réponse devrait être +130 non -126. Étant donné que la grandeur est 130 , il faut plus de 8 bits pour
l'exprimer, et il y a donc un dépassement (overflow) sur le rang du bit de signe. Une condition de
dépassement donne toujours lieu à un résultat inexact, et on la détecte en examinant le bit de signe du
résultat et en le comparant aux bits de signe des nombres additionnés. En additionnant deux nombres
de signes différents, il ne peut pas y avoir de dépassement, par contre lorsqu'on additionne deux
nombres de même signe, on a un dépassement si le signe du résultat est différent du signe des deux
nombres additionnés. Dans un ordinateur, il existe un circuit spécialement conçu pour détecter les
conditions de débordement et pour indiquer que la réponse est fausse.
e. Multiplication en complément à deux
• Si les deux nombres multiplier sont positifs, ils sont déjà dans cette notation et ils sont multipliés
tels quels. Le produit résultant est évidemment positif et son bit de signe est 0.

7
Partie 1 : Codage de l’information Représentation des entiers et des réels

• Quand les deux nombres sont négatifs, ils sont donc écrits dans la notation en complément à 2.
Chacun de ces nombres est complémenté à 2 pour obtenir un nombre positif et ce sont les résultats
de ces complémentations qu'on multiplie. Le produit est un nombre positif dont le bit de signe est
0.
• Quand un des nombres est positif et que l'autre est négatif, le nombre négatif est d'abord
complémenté à 2 pour obtenir une grandeur positive. Le produit est exprimé selon la notation en
grandeur exacte (code binaire pur). Cependant, le produit doit être négatif car les nombres à
multiplier sont de signes opposés. Par conséquent, on complémente à 2 le produit

Représentation des nombres réels


a. Représentation en virgule flottante
Nous désirons stocker des données dans une machine. Ainsi le nombre 9,750 se trouvera mémorisé
sous la forme suivante : 100111. Toutefois cette expression binaire ne suffit pas à définir totalement
notre donnée car il n'y a aucune indication sur la valeur du poids binaire affecté aux différents bits,
d'où la notion de virgule suivante : 1001,11. Mais le problème qui se pose comment représenter cette
virgule ?
En utilisant cette notion de virgule, notre nombre peut s'écrire de la manière ci-après :
N = 1001,11 x 20
N = 100,111 x 21
N = 10,0111 x 22
N = 1,00111 x 23
N = 0,100111 x 24

La dernière expression présente l'avantage de représenter la grandeur par un nombre inférieur à 1


multiplié par une puissance de 2.
L'exposant 4 est bien entendu représentatif de la position de la virgule.
Donc pour définir totalement notre information (9,750) il faudra dans ce système de représentation
deux termes :
• Le terme 100111 appelé Mantisse (M),
• le terme 100 = (4)10 appelé Exposant (E).

Si dans une machine les informations sont représentées en virgule flottante, elles se présenteront de la
manière suivante : 100111100
100111 100
Mantisse exposant

100111 est la Mantisse et correspond à notre nombre N de départ (1001,11) mais sans "écrire ou
indiquer" la virgule,
100 est l'Exposant (100 en binaire vaut 4 en décimal) et donne la position de la virgule (la 4ème position
de gauche à droite). Nombre à virgule flottante
b. La norme IEEE 754
Il s'agit d'aller représenter un nombre binaire à virgule sous la forme 1,XXXXX... × 2n (exemple
1,0101×22). La norme IEEE 754 définit la façon de coder un nombre réel.
Cette norme se propose de coder le nombre sur 32 bits (simple précision) (ou 64 bits pour double

8
Partie 1 : Codage de l’information Représentation des entiers et des réels

précision) et définit trois composantes :


• le signe est représenté par un seul bit, le bit de poids fort (celui le plus à gauche)
• l'exposant est codé sur les 8 bits consécutifs au signe
• la mantisse (les bits situés après la virgule) sur les 23 bits restants
Ainsi le codage se fait sous la forme suivante :
Seeeeeeeemmmmmmmmmmmmmmmmmmmmmmm
• le S représente le bit relatif au signe
• les e représentent les bits relatifs à l'exposant
• les m représentent les bits relatifs à la mantisse
Certaines conditions sont toutefois à respecter pour les exposants :
• L’exposant 00000000 est utilisé pour représenter le zéro et les nombres dénormalisés
• L’exposant 11111111 est interdit. On s'en sert toutefois pour signaler des erreurs, (ou exprimer
l’infini) on appelle alors cette configuration du nombre NaN, ce qui signifie Not a number
• Il faut rajouter 127 (01111111) à l'exposant pour une conversion de décimal vers un nombre
réel binaire. Les exposants peuvent ainsi aller de -254 à 255

La formule d'expression des nombres réels est ainsi la suivante:

(-1)S × 2 ( E - 127 ) × ( 1 + F ) où F est la partie fractionnaire

Exemples concrets :
Ecrivons 525,5 selon la norme IEEE :
• 525,5 est positif donc le 1er bit sera 0.
• Sa représentation en base 2 est la suivante : 1000001101,1 En normalisant, on trouve :
1,0000011011×29
• On ajoute 127 à l'exposant qui vaut 9 ce qui donne 136, soit en base 2 : 10001000
• La mantisse est composée de la partie décimale de 525,5 en base 2 normalisée, c'est-à-dire
0000011011. Comme la mantisse doit occuper 23 bits, il est nécessaire d'ajouter des zéros pour
la compléter : 00000110110000000000000
La représentation du nombre 525,5 en binaire avec la norme IEEE est donc :
0 1000 1000 00000110110000000000000
Voici un autre exemple avec un réel négatif :
Soit à coder la valeur -0,625.
• Le bit s vaut 1 car 0,625 est négatif
• 0,625 s'écrit en base 2 de la façon suivante : 0,101. On souhaite l'écrire sous la forme 1.01 x 2-1
• L’exposant vaut 1111110 car 127 - 1 = 126 (soit 1111110 en binaire)
• La mantisse est 01000000000000000000000 (seuls les chiffres après la virgule sont
représentés, le nombre entier étant toujours égal à 1)
La représentation du nombre 0,625 en binaire avec la norme IEEE est :
1 0111 1110 01000000000000000000000

9
Partie 1 : Codage de l’information Représentation des caractères

IV. Représentation des caractères


Code ASCII
La mémoire de l'ordinateur conserve toutes les données sous forme numérique. Il n'existe pas de
méthode pour stocker directement les caractères. Chaque caractère possède donc son équivalent en
code numérique : c'est le code ASCII (American Standard Code for Information Interchange -
traduisez « Code Americain Standard pour l'Echange d'Informations »). Le code ASCII de base
représentait les caractères sur 7 bits (c'est-à-dire 128 caractères possibles, de 0 à 127). 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 codes 0 à 31 ne sont pas des caractères affichables. On les appelle caractères de contrôle
car ils permettent de faire des actions telles que :
o Retour à la ligne (CR)
o Bip sonore (BEL)
• Les codes 65 à 90 représentent les majuscules
• Les codes 97 à 122 représentent les minuscules
(Il suffit de modifier le 6ème bit pour passer de majuscules à minuscules, c'est-à-dire ajouter 32 au code
ASCII en base décimale.)
(Voir la table détaillée du code ASCII – Annexe)
On peut aussi présenter la table des caractères ASCII sous cette forme plus condensée qui met en
évidence une organisation fondée sur la base 16

0 1 2 3 4 5 6 7 8 9 A B C D E F
NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI
0
DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US
1
SP
2 ! " # $ % & ' ( ) * + , - . /
3 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
4 @ A B C D E F G H I J K L M N O
5 P Q R S T U V W X Y Z [ \ ] ^ _
6 ` a b c d e f g h i j k l m n o
DEL
7 p q r s t u v w x y z { | } ~

Code ASCII étendu


Le code ASCII a été mis au point pour la langue anglaise, il ne contient donc pas de caractères
accentués, ni de caractères spécifiques à une langue. Le code ASCII a donc été étendu à 8 bits (un
octet) pour pouvoir coder plus de caractères (on parle d'ailleurs de code ASCII étendu...).

10
Partie 1 : Codage de l’information Représentation des caractères

Ce code attribue les valeurs 0 à 255 (donc codées sur 8 bits, soit 1 octet) aux lettres majuscules et
minuscules, aux chiffres, aux marques de ponctuation et aux autres symboles (caractères accentués
dans le cas du code iso-latin1).
Le code ASCII étendu n'est pas unique et dépend fortement de la plateforme utilisée.
Les deux jeux de caractères ASCII étendus les plus couramment utilisés sont :
• Le code ASCII étendu OEM, c'est-à-dire celui qui équipait les premières machines de type
IBM PC (voir Annexe)
• Le code ASCII étendu ANSI, utilisé par les systèmes d'exploitation récents

Le code EBCDIC
Le code EBCDIC (Extended Binary-Coded Decimal Interchange Code), développé par IBM, permet
de coder des caractères sur 8 bits. Bien que largement répandu sur les machines IBM, il n'a pas eu le
succès qu'a connu le code ASCII.

Unicode
Le code Unicode est un système de codage des caractères sur 16 bits mis au point en 1991. Le système
Unicode permet de représenter n'importe quel caractère par un code sur 16 bits, indépendamment de
tout système d'exploitation ou langage de programmation.
Il regroupe ainsi la quasi-totalité des alphabets existants (arabe, arménien, cyrillique, grec, hébreu,
latin, ...) et est compatible avec le code ASCII

11
Partie 1 : Codage de l’information Autres codages

V. Autres codages
Codage BCD
Le BCD pour binary coded decimal, qui peut se traduire en français par décimal codé binaire, est un
système de numération utilisé en électronique et en informatique pour coder des nombres d'une façon
relativement proche de la représentation humaine usuelle (en base 10). En BCD, les nombres sont
représentés en chiffres décimaux et chacun de ces chiffres est codé sur quatre bits :

Décimal 0 1 2 3 4 5 6 7 8 9
BCD 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001

Exemple : Pour coder un nombre tel 127 il suffit de coder chacun des chiffres.
1 2 7
↓ ↓ ↓
0001 0010 0111

a. Opération sur le code BCD


Additionnant les deux nombres suivants en utilisant la notation BCD : 65537 +16383

6 5 5 3 7 0110 0101 0101 0011 0111


+ 1 6 3 8 3 + 0001 0100 0011 1000 0011
8 1 9 2 0 0111 1011 1000 1011 1010
Valeurs inconnues
0110 0110 0110 Ajout de 6 pour corriger
1000 0001 1001 0010 0000
8 1 9 2 0

Pour additionner deux nombres décimaux codés en binaire, il suffit de


• Procéder à l’addition en binaire naturel
• Ajouter le nombre (6)10 c’est à dire (0110)2, à tout quartet ne correspondant pas à une valeur
connue par le code BCD (les nombres dépassant (9)10 ou (1001)2).
b. Utilisation du code BCD
La plupart des ordinateurs stockent les données dans des octets d'une taille de 8 bits. Deux méthodes
communes permettent d'enregistrer les chiffres BCD de 4 bits dans un tel octet:
• Ignorer les quatre bits supplémentaires de chaque octet et leur ajouter quatre bits identiques (0
ou 1 comme pour EBCDIC)
• Enregistrer deux chiffres par octet ce qui est appelé le « packed » BCD (qui peut utiliser un
signe : 1100 pour + et 1101 pour −) - format compacté.
Selon la méthode, le nombre 127 sera représenté comme 11110001 11110010 11110111 en EBCDIC
ou comme 00010010 01111100 1en « packed » BCD.

1 Les 4 bits de poids faible de cet octet sont utilisés pour représenter le signe

12
Partie 1 : Codage de l’information Autres codages

Le BCD est très commun dans les systèmes électroniques lorsqu'une valeur numérique doit être
affichée, spécialement dans les systèmes ne consistant qu'en circuits numériques et ne contenant pas de
microprocesseur (une calculatrice par exemple). En utilisant BCD, la manipulation des données
numériques est grandement simplifiée en traitant chaque chiffre dans un seul sous-circuit. Ce
fonctionnement est le plus proche du matériel d'affichage (pour un afficheur 7 segments notamment).
Si la quantité numérique était stockée et manipulée en binaire, il faudrait une interface de traduction
complexe. En utilisant le BCD dans tout le circuit, le système électronique en est simplifié.

Codage gray
Le code de Gray, également appelé binaire réfléchi, est un type de codage binaire permettant de ne
modifier qu'un seul bit à la fois quand un nombre est augmenté d'une unité. Le nom du code vient de
l'ingénieur américain Frank Gray (en) qui publia un brevet sur ce code en 1953.
a. Intérêt
Le fait de modifier plusieurs bits lors d'une simple incrémentation peut mener, selon le circuit logique,
à un état transitoire indésirable dû au fait que le chemin logique de chaque bit dispose d'un délai
différent. Ainsi, lors du passage de la valeur "01" à la valeur "10" en binaire naturel, il est possible
d'observer un état transitoire "00" si le bit de droite commute en premier ou "11" dans le cas contraire.
Si le circuit dépendant de cette donnée n'est pas synchrone2, l'état transitoire peut perturber les
opérations en faisant croire au système qu'il est passé par un état normalement non atteint à ce stade.
Ce code permet de contourner cet aléa en forçant la commutation d'un seul bit à la fois, évitant ainsi les
états transitoires.
Alors ce code est fréquemment utilisé dans les capteurs angulaires ou de positionnement et les
convertisseurs analogiques numériques, mais aussi lorsque l'on désire une progression numérique
binaire sans parasite transitoire. Le code Gray sert également dans les tableaux de Karnaugh utilisés
lors de la conception de circuits logiques.
b. Table d’équivalence

Décimal Binaire Gray


naturel
0 0000 0000
1 0001 0001
2 0010 0011
3 0011 0010
4 0100 0110
5 0101 0111
6 0110 0101
7 0111 0100
8 1000 1100
9 1001 1101
10 1010 1111
11 1011 1110

2 Un circuit synchrone est un circuit électronique numérique qui fonctionne à un rythme dicté par une horloge

13
Partie 1 : Codage de l’information Autres codages

12 1100 1010
13 1101 1011
14 1110 1001
15 1111 1000

c. Incrémentation du code Gray


Pour passer d'un nombre de Gray au suivant :
• si le nombre de 1 est pair, il faut inverser le dernier chiffre.
• si le nombre de 1 est impair, il faut inverser le chiffre situé à gauche du 1 le plus à droite.
Exemple : Quel le suivant de 1001 ?
Le nombre de 1 est 2 (pair), donc on inverse le dernier chiffre alors le code suivant est 1000.
Quel est le suivant de 1101 ?
Le nombre de 1 est 3 (impair) , on inverse le 0 puisqu’il est situé à gauche du 1 le plus à droite, d’où
1111.
d. Passage du binaire au gray
Pour passer du binaire au Gray on peut utiliser la relation suivante :
g = b ^ (b >> 1) où ^ est l’opérateur ou exclusif et >> le décalage à droite
Exemple : Quel est l’équivalent de 0101 en Gray ?

0 1 0 1 (5)10
^ 0 0 1 0 Décalage à droite par un bit
0 1 1 1 Code gray de 5

14
Annexe 36 044 24 0100100 $ Dollar
Annexe Code 37 045 25 0100101 % Pourcent
car signification 38 046 26 0100110 & Esperluette ou perluète8
10 8 16 binaire
39 047 27 0100111 ' Apostrophe ou guillemet fermant
0 0 00 0000000 NUL Null (nul) simple ou accent aigu12
1 01 01 0000001 SOH Start of Header (début d'en-tête) 40 050 28 0101000 ( Parenthèse ouvrante
2 02 02 0000010 STX Start of Text (début du texte) 41 051 29 0101001 ) Parenthèse fermante
3 03 03 0000011 ETX End of Text (fin du texte) 42 052 2A 0101010 * Astérisque
4 04 04 0000100 EOT End of Transmission (fin de transmission) 43 053 2B 0101011 + Plus
5 05 05 0000101 ENQ Enquiry (End of Line) (demande, fin de ligne) 44 054 2C 0101100 , Virgule
6 06 06 0000110 ACK Acknowledge (accusé de réception) 45 055 2D 0101101 - Moins ou tiret8 ou trait d'union
7 07 07 0000111 BEL Bell (caractère d'appel) 46 056 2E 0101110 . Point
8 010 08 0001000 BS Backspace (espacement arrière) 47 057 2F 0101111 / Barre oblique (Slash en anglais)
9 011 09 0001001 HT Horizontal Tab (tabulation horizontale) 48 060 30 0110000 0 Le chiffre zéro
10 012 0A 0001010 LF Line Feed (saut de ligne) 49 061 31 0110001 1 Le chiffre un
11 013 0B 0001011 VT Vertical Tab (tabulation verticale) 50 062 32 0110010 2 Le chiffre deux
12 014 0C 0001100 FF Form Feed (saut de page) 51 063 33 0110011 3 Le chiffre trois
13 015 0D 0001101 CR Carriage Return (retour chariot) 52 064 34 0110100 4 Le chiffre quatre
14 016 0E 0001110 SO Shift Out (fin d'extension) 53 065 35 0110101 5 Le chiffre cinq
15 017 0F 0001111 SI Shift In (démarrage d'extension) 54 066 36 0110110 6 Le chiffre six
16 020 10 0010000 DLE Data Link Escape 55 067 37 0110111 7 Le chiffre sept
17 021 11 0010001 DC1 Device Control 1 à 4 (DC1 et DC3 sont 56 070 38 0111000 8 Le chiffre huit
18 022 12 0010010 DC2 généralementutilisés pour coder XON et XOFF
dans un canal de communication duplex) 57 071 39 0111001 9 Le chiffre neuf
19 023 13 0010011 DC3 58 072 3A 0111010 : Deux-points
20 024 14 0010100 DC4 59 073 3B 0111011 ; Point-virgule
21 025 15 0010101 NAK Negative Acknowledge (accusé de réception 60 074 3C 0111100 < Inférieur
négatif)
61 075 3D 0111101 = Égal
22 026 16 0010110 SYN Synchronous Idle
62 076 3E 0111110 > Supérieur
23 027 17 0010111 ETB End of Transmission Block (fin du bloc de
transmission) 63 077 3F 0111111 ? Point d'interrogation
24 030 18 0011000 CAN Cancel (annulation) 64 0100 40 1000000 @ Arobace ou arobase ou A commercial8
25 031 19 0011001 EM End of Medium (fin de support) 65 0101 41 1000001 A
26 032 1A 0011010 SUB Substitute (substitution) 66 0102 42 1000010 B
27 033 1B 0011011 ESC Escape (échappement) 67 0103 43 1000011 C
28 034 1C 0011100 FS File Separator (séparateur de fichier) 68 0104 44 1000100 D
29 035 1D 0011101 GS Group Separator (séparateur de groupe) 69 0105 45 1000101 E
30 036 1E 0011110 RS Record Separator (séparateur 70 0106 46 1000110 F
d'enregistrement) 71 0107 47 1000111 G
31 037 1F 0011111 US Unit Separator (séparateur d'unité) 72 0110 48 1001000 H
32 040 20 0100000 SP Espace (Space en anglais) 73 0111 49 1001001 I
33 041 21 0100001 ! Point d'exclamation 74 0112 4A 1001010 J
34 042 22 0100010 " Guillemet droit 75 0113 4B 1001011 K
35 043 23 0100011 # Croisillon ou dièse ou signe numéro8 76 0114 4C 1001100 L
15
77 0115 4D 1001101 M 117 0165 75 1110101 u
78 0116 4E 1001110 N 118 0166 76 1110110 v
79 0117 4F 1001111 O 119 0167 77 1110111 w
80 0120 50 1010000 P 120 0170 78 1111000 x
81 0121 51 1010001 Q 121 0171 79 1111001 y
82 0122 52 1010010 R 122 0172 7A 1111010 z
83 0123 53 1010011 S 123 0173 7B 1111011 { Accolade ouvrante
84 0124 54 1010100 T 124 0174 7C 1111100 | Barre verticale
85 0125 55 1010101 U 125 0175 7D 1111101 } Accolade fermante
86 0126 56 1010110 V 126 0176 7E 1111110 ~ Tilde
87 0127 57 1010111 W 127 0177 7F 1111111 DEL Delete (effacement)
88 0130 58 1011000 X
89 0131 59 1011001 Y
Dans la table ci-dessus, les 33 caractères de contrôle (codes 0 à 31 et
90 0132 5A 1011010 Z
91 0133 5B 1011011 [ Crochet ouvrant 127) sont présentés avec leur nom en anglais suivi d'une traduction entre
92 0134 5C 1011100 \ Barre oblique parenthèses.
inversée (backslash ou antislash en anglais)
93 0135 5D 1011101 ] Crochet fermant
94 0136 5E 1011110 ^ Accent circonflexe (avec chasse) Le code ASCII étendu OEM
95 0137 5F 1011111 _ Tiret bas ou trait
bas8 ou souligné (underscore en anglais)
96 0140 60 1100000 ` Accent grave (avec chasse)13
97 0141 61 1100001 a
98 0142 62 1100010 b
99 0143 63 1100011 c
100 0144 64 1100100 d
101 0145 65 1100101 e
102 0146 66 1100110 f
103 0147 67 1100111 g
104 0150 68 1101000 h
105 0151 69 1101001 i
106 0152 6A 1101010 j
107 0153 6B 1101011 k
108 0154 6C 1101100 l
109 0155 6D 1101101 m
110 0156 6E 1101110 n
111 0157 6F 1101111 o
112 0160 70 1110000 p
113 0161 71 1110001 q
114 0162 72 1110010 r
115 0163 73 1110011 s
116 0164 74 1110100 t
16

Vous aimerez peut-être aussi