Vous êtes sur la page 1sur 12

Chapitre 1 

: Les systèmes de numération et codage

Objectifs :
 Comprendre les différents systèmes de codage couramment utilisés dans les systèmes informatiques
 Encoder et décoder des informations (conversion de données)
 Détecter et corriger des erreurs lors de transmission d’informations

I. Numération et code

Introduction
Toute information traitée par les systèmes informatiques devra pouvoir être représentée sous une forme
compréhensible par machine, dans le cas qui nous intéresse, sous forme binaire. Ce passage d’une information,
d’un langage compréhensible par l’homme, à un langage compréhensible par la machine s’appelle codage ou
codification.
Il existe de nombreuses possibilités de codage de l’information, citons dès à présent :

 Binaire,
 Hexadécimal,
 BCD,
 ASCII…

1. Les systèmes de numération

Il s’agit de présenter ici, les codes les plus couramment utilisés.


Si la base 10 nous est familière, d’autres bases existent. Les bases les plus utilisées en informatique sont les
bases 10, 2, 8 et 16 appelées respectivement « décimale », « binaire », « octale » et « hexadécimale ».
D'une façon générale, soit une base B, donc associée à B symboles : { S0, S1, …, SB-1} ; un nombre N, a les
caractéristiques suivantes :
Il s'écrit N = (An-1 … Ai … A1A0)B avec Ai є { S0, S1, …, SB-1} ;
Il a pour valeur (décimale) N = An-1.Bn-1 + … + AiBi + … + A1B1 + A0B0 (forme polymoniale) ;
Ai est le chiffre (digit) de rang i et de poids B i ;
An-1 est le chiffre le plus significatif (MSB : Most Significant Bit) ;
A0 est le chiffre le moins significatif (LSB : Less Significant Bit).
Exemple

Forme polynomiale

BASE ALPHABET NUMERATION


2 ou binaire {0 , 1 } Numération binaire

8 ou octale {0,1,2,3,4,5,6,7} Numération octale

10 ou décimale {0,1,2,3,4,5,6,7,8,9} Numération décimale

16 ou hexadécimale {0,1,2,3,4,5,6,7,8,9,A ,B,C, D, E, F} Numération hexadécimale

Exemple : 723910 , 1348 , 01012 , 1ABH 723910 = 7. 103+2. 102+3.101+9. 100

2. Les changements de base

Conversion Procédé Exemple


Décimale --> binaire Divisions successives par 2 (7)10 = (111)2 ; (135)10 = (10000111)2

Décimale  octale Divisions successives par 8 (304)10 = (460)8

Décimale  hexadécimale Divisions successives par 16 (101)10 = (65)16 ; (256)10 =(100)16

Conversion toutes les bases D’une manière générale on a : (1011)2 = 1x23 + 0x22 + 1x21 +1x20=(11)10
Vers la base décimale
(N)B =an-1Bn-1 +…+a0-B0 (324)8 =3x82 + 4x80 = (212)10

B : base ai ; les n chiffres (1A2)16 = 1x162 +10x161 + 2x160 =(418)10

On fractionne le nombre binaire en tercets (3 (110101110001)2 = (110 101 110 001)2


bits) successifs en partant de la droite. Chaque
Binaire  octale (8=23) tercet est ensuite convertit en octale. = (6561)8

Chaque chiffre est codé sur 3 bits, en


Octale  binaire complétant par zéros si nécessaire (76)8 = (111 110)2

Binaire hexadécimale On fractionne le nombre binaire en quartets (4 (110101110001)2


(16=24) bits) successifs en partant de la droite. Chaque
quartet est ensuite convertit en hexadécimale. = (D71)16 ou (D71)H

Chaque chiffre est codé sur 4 bits, en (8F2E)16 = (1000111100101110)2


Hexadécimale  binaire complétant par zéros si nécessaire

Remarque :
a. Conversion base i vers base j
Si i et j sont des puissances de 2, on utilise la base 2 comme relais ;
Exemple : conversion 8 vers 16
: base 8  base 2 base 16
b. Quelques cas spécifiques de conversion
 Conversion de nombres binaires à virgules en décimal

Exemples :
Convertir les nombres binaires fractionaires suivants en décimal :
 0.1011
 10111101.011

 Conversion de nombres décimaux fractionnaires en binaire

Exemple
 0.3125 à convertir

Application
 0.625
 0.375
 45.5

3. Codage

3.1 Codage des nombres entiers

3.1.1 Représentation des nombres entiers non signés


Les nombres sont représentés en binaire sur n bits. On peut représenter des nombres allant de 0 à 2n -1.
3.1.2 Représentation binaire des entiers signés
Il existe trois modes de représentation des nombres signés :

 Représentation en valeur absolue et en signe


 Représentation en complément à 1 (pour les nombres négatifs)
 Représentation en complément à 2 (pour les nombres négatifs)

a. Représentation en valeur absolue et en signe


Pour un mot de n bits, le bit le plus significatif représente le signe, et le reste des bits, la valeur du nombre en
binaire. Conventionnellement, on attribue la valeur 0 au signe +, la valeur 1 au signe -.
Exemples :

Nombre Bit de signe Valeur binaire

+9 = 0 1001

-9 = 1 1001

+12 = 0 1100

-12 = 1 1100

b. Représentation en complément à 1
Le complément à 1 d’un nombre binaire s’obtient en changeant les 1 en 0 et les 0 en 1.

Exemples :

Nombre Bit de signe Cà 1

+7 = 0 0111

-7 = 1 1000

+10 = 0 1010

-10 = 1 0101

c. Représentation en complément à 2
Dans un code à complément à 2, on obtient le code du négatif d’un nombre en effectuant le complément à un de
ce nombre et en lui ajoutant 1 sans garder de retenue.

Exemples :

Nombre Bit de signe Valeur binaire

+7 = 0 0111

-7 = 1 1001

+10 = 0 1010

-10 = 1 0110

Remarque :

 Il est à remarquer que si nous attribuons la valeur -1 au bit de signe d’un nombre représenté par
son complément à 2, nous obtenons la valeur algébrique exacte du nombre. (Exemple 1)
 Le code à complément à 2 est très important puisqu’il permet d’effectuer des opérations
arithmétiques avec signes sans avoir à se préoccuper de ceux-ci.
 On peut également déterminer le complément à 2 d’un nombre en procédant de la manière
suivante : examiner tous les bits du nombre N de la droite à la gauche et complémenter tous les
bits positionnés après le premier « 1 » rencontré. (Exemple 3)

Exemple 1 :
-7  11001 = -24 +23 +0+0+1
Exemple 2 :
Faire l’addition de 127 et -26 ainsi que de -127 et 26
127 0111 1111 0111 1111
-26 -0001 1010  +1110 0110

=101 1 0110 0101 =101 (décimal)


La retenue est rejetée.

26 0001 1010 0001 1010


- 127 -0111 1111  +1000 0001

-101 1001 1011 Ce résultat est négatif et se trouve sous sa


forme complémentée (comp. à 2).
0110 0100 Inversion
+1

0110 0101 = - 101 (décimal)


S’il y a absence de report, issu du dernier rang, cela signifie que le résultat est négatif et qu’il se présente alors
sous une forme complémentée (complément à 2). Il suffit donc d’en trouver le complément à 2 pour retrouver
la valeur recherchée.
Exemple 3
B = 00110100 Son complément à 2 donne : 11001100

Bits ayant changés Bits n’ayant pas changés

3.3.3 Norme IEEE 754


C’est la norme la plus utilisée pour le codage des réels.
Pour représenter des réels, nombres pouvant être positifs, nuls, négatifs et non entiers, on utilise la
représentation en virgule flottante (flen anglais) qui fait correspondre au nombre 3 informations :
On appelle alors :

Sous cette forme normalisée, il suffit de mémoriser le signe, l’exposant et la mantisse pour avoir une
représentation du nombre en base 10. Il n’est pas utile de mémoriser le 0 avant la virgule puisque tous les
nombres vont commencer par 0. En faisant varier l’exposant, on fait « flotter » la virgule décimale.
C’est cette méthode que l’on va adapter pour coder les réels en binaire naturel. Il faut au préalable les écrire
sous la forme (norme IEEE 754 – Institute of Electrical and Electronics Engineers) :
Le mot binaire obtenu sera la juxtaposition de 3 parties :
signe 1, mantisse x 2exposant

Dans cette norme, selon la précision recherchée on utilisera pour le stockage du nombre un nombre d’octets
plus ou moins importants.

Format Signe Exposant Mantisse Nbre bits Déclaration C


Simple précision 1 8 23 32 Float
Double Précision 1 11 52 64 Double
Grande précision 1 15 64 80 Long double

Démarche de conversion :

Applications

1. Comment représenter le nombre décimal 6,625 en virgule flottante, format simple précision.
2. Représenter le décimal -243,25 en virgule flottante, format simple précision.
3. Encoder le nombre +16,5 en simple précision.
4. Comment retrouver la valeur décimale du nombre 44 F3 E0 00 réprésenté en virgule flottante selon la
même norme.

3. 4 Représentation des données non numériques


Les informations que doivent traiter les ordinateurs sont composées de lettres, de chiffres ou de symboles.
Divers codes permettent la codification d’alphabets plus ou moins importants.

3.4.1 Code BCD (Binary Coded Decimal) ou code 8421


Le code BCD encode le nombre à représenter de façon très directe. Chaque chiffre du nombre est encodé sur 4
bits.
Exemple : Représenter 863 avec un code BCD
8 6 3
1000 0110 0011
Rque : BCD codensé et BCD étendu + exemples
3.4.2 Code de Gray Dec. Code Dec. Code
Dans l’ordre séquentiel du code, il n’y a qu’un bit qui change entre deux Gray Gray

mots consécutifs qui sont, par conséquent adjacents. 0 0000 8 1100


1 0001 9 1101
Code de Gray à 4 bits : (tableau) 2 0011 10 1111
3 0010 11 1110
Pour le construire, on procède par réflexion comme l'indique le tableau de
4 0110 12 1010
l’annexe 1.
5 0111 13 1011
6 0101 14 1001
7 0100 15 1000

3.4.3 Code AIKEN Code pondéré ( 2 4 2 1 ) symétrique et autocomplémentaire.

Code décimal 0 1 2 3 4 5 6 7 8 9

Code AIKEN 0000 0001 0010 0011 0100 1011 1100 1101 1110 1111
0 et 9 sont complémentaires ; 1 et 8 ; 2 et 7 ; 3 et 6 ; 4 et 5.

3.4.4 Code DCB exédent 3 ou EXCESS 3 ( XS 3)


Semblable au DCB : 3 est ajouté à chaque chiffre décimal. Les trois combinaisons situées avant 0011
( c'est à dire 0000, 0001, 0010 ) et les trois combinaisons situées après 1100 ( c'est à dire 1101, 1110, 1111 )
ne sont pas utilisées.

Code décimal 0 1 2 3 4 5 6 7 8 9
Code "plus 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100
trois"

exemple : 2583 d s'écrit en code "plus 3" : 0101 1000 1011 0110

Créé pour permettre la réalisation simple des soustractions : le complément à 1 d'un mot représente le
complément à 9 dans l'ensemble source.
exemple : cp à 1 de 8 (1011) est 1 (0100).

Les codes possédant cette propriété sont appelés codes autocomplémentaires.

3.4.5 Le code ASCII


Le code ASCII (American Standard Code for Information Interchange) est l’un des code les plus utilisés en
informatique. C’est un code alphanumérique à sept bits (ou plus) permettant de coder une gamme de données
assez large (nombres, lettres et autres caractères spéciaux). Il est surtout adapté à la langue anglaise. Pour
prendre en compte des langues comme le français, il a fallu étendre ce code à 8 bits (…). Le tableau ci-dessous
nous le code ASCII standard et étendu.

Code ASCII standard : Annexe 2

Code ASCII étendu : Annexe 4

3.4.6 Codes détecteurs d’erreurs et autocorrecteurs

a. Le contrôle de parité ou LRC


Aux n bits que comporte le code d’origine, on ajoute 1 bit supplémentaire. Ce bit est positionné de telle sorte
que, par exemple, le nombre total de bits à 1 soit pair (code dit à parité ou abusivement à parité paire), ou
impair (code dit à imparité ou abusivement à parité impaire).
0 0 1 1 1 0 0 1 parité paire

Bit de parité
1 0 1 0 0 1 0 0 parité impaire

Bit de parité
Application 01

-> Si l’on transmet le message « ALLO » en code ASCII, quelle est la chaîne binaire que le récepteur doit
obtenir (transmission avec bit de parité pair)
Réponse : 01000001 11001100 11001100 11001111
-> Si l’on reçoit la chaîne suivante 11000011 00100000 01110001 11110101 01101001 00100000 00111111
comment peut-on l’interpréter en ASCII (Transcodez ce message binaire en ASCII; réception avec bit de
parité paire)

b. Les codes autovérificateurs ou autocorrecteurs

On distingue deux techniques d’élaboration de des codes : les codes de blocs, et les contrô les cycliques.
i. Les codes blocs
Parmi les codes de blocs on rencontre :

 Le contrô le de parité verticale (Vertical Redundancy Checking)


 Le contrô le de parité longitudinale (Longitudinal Redundancy Checking)

Parités croisées ou LRC/VRC (Vertical Redundancy Check)


Les caractères constituant l'information à transmettre sont regroupés par blocs. A la fin de chaque bloc,
l'émetteur ajoute un caractère supplémentaire, le VRC dont chaque bit est égal à la parité des bits de même
rang de tous les caractères du bloc d'information.

Exemple :

LRC
B 1 0 0 0 0 1 0 0
O 1 0 0 1 1 1 1 1
N 1 0 0 1 1 1 0 0
J 1 0 0 1 0 1 0 1
O 1 0 0 1 1 1 1 1
U 1 0 1 0 1 0 1 0
R 1 0 1 0 0 1 0 1
VRC 1 0 0 0 0 0 1 0
Parité
croisée
Cette méthode permet de détecter toutes les erreurs simples, doubles et triples, ainsi que de corriger les
erreurs simples.
Récapitulatif

Annexe 1 : Construction du code Gray

Annexe 3 : Codes EBCDIC

Quartet de poids fort


0 1 2 3 4 5 6 7 8 9 A B C D E F

0 NUL DLE Space & t { } / 0

Q 1 SOH DC1 / a j t A J 1

u 2 STX DC2 b k s B K S 2

a 3 ETX DC3 SYN c l t C L T 3

r 4 d m u D M U 4
t 5 HT NL LF e n v E N V 5

e 6 BS ETB f o w F O W 6

t 7 DEL ESC EOT g p x G P X 7

8 EOM CAM h q y H Q Y 8

f 9 EM i r z I R Z 9

a A [ ] | :

i B VT t $ t #

b C FF FS DC4 < ' % "

l D CR GS ENQ NAC ( ) - '

e E SO RS ACK + > t

F SI US BEL SUB ! @ ? =

t Options nationales

Annexe 2 : Code ASCII standard


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

A =41H
NUL Null (nul) DLE Data Link Escape
SOH Start of Header (début d'entête) DC1 Pas de signification déterminée, mais généralement
STX Start of Text (début du texte) DC2 utilisés pour le XON/XOFF dans les protocoles de
ETX End of Text (fin du texte) DC3 connexion
End of Transmission (fin de
EOT DC4
transmission)
ENQ Enquiry (demande) NAK Negative Acknowledge (accusé de reception négatif)
ACK Acknowledge (accusé de reception) SYN Synchronous Idle
End of Transmission Block (fin du bloc de
BEL Bell (cloche) ETB
transmission)
BS Backspace (espacement arrière) CAN Cancel (annulation)
Horizontal Tab (tabulation
HT EM End of Medium (fin de support)
horizontale)
LF Line Feed (saut de ligne) SUB Substitute (substitution)
VT Vertical Tab (tabulation verticale) ESC Escape (échappement)
FF Form Feed (saut de page) FS File Separator (séparateur de fichier)
CR Carriage Return (retour chariot) GS Group Separator (séparateur de groupe)
SO Shift Out (fin d'extension) RS Record Separator (séparateur d'enregistrement)
SI Shift In (démarrage d'extension) US Unit Separator (séparateur d'unité)
SP Space (espace blanc) DEL Delete (effacement)
Remarques
 Les codes 0 à 31 ne sont pas des caractères. 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 48 à 57 représentent les chiffres.
 Les codes 65 à 90 représentent les majuscules.
Les codes 97 à 122 représentent les minuscules

Annexe 4 : Code ASCII étendu


Déci Hexa ASCII Déci Hexa ASCII Déci Hexa ASCII Déci Hexa ASCII
0 00 NUL 32 20 Space 64 40 @ 96 60 `
1 01 SOH 33 21 ! 65 41 A 97 61 a
2 02 STX 34 22 " 66 42 B 98 62 b
3 03 ETX 35 23 # 67 43 C 99 63 c
4 04 EOT 36 24 $ 68 44 D 100 64 d
5 05 ENQ 37 25 % 69 45 E 101 65 e
6 06 ACK 38 26 & 70 46 F 102 66 f
7 07 BEL 39 27 ' 71 47 G 103 67 g
8 08 BS 40 28 ( 72 48 H 104 68 h
9 09 HT 41 29 ) 73 49 I 105 69 i
10 0A LF 42 2A * 74 4A J 106 6A j
11 0B VT 43 2B + 75 4B K 107 6B k
12 0C FF 44 2C , 76 4C L 108 6C l
13 0D CR 45 2D - 77 4D M 109 6D m
14 0E SO 46 2E . 78 4E N 110 6E n
15 0F SI 47 2F / 79 4F O 111 6F o
16 10 DLE 48 30 0 80 50 P 112 70 p
17 11 DC1 49 31 1 81 51 Q 113 71 q
18 12 DC2 50 32 2 82 52 R 114 72 r
19 13 DC3 51 33 3 83 53 S 115 73 s
20 14 DC4 52 34 4 84 54 T 116 74 t
21 15 NAK 53 35 5 85 55 U 117 75 u
22 16 SYN 54 36 6 86 56 V 118 76 v
23 17 ETB 55 37 7 87 57 W 119 77 w
24 18 CAN 56 38 8 88 58 X 120 78 x
25 19 EM 57 39 9 89 59 Y 121 79 y
26 1A SUB 58 3A : 90 5A Z 122 7A z
27 1B ESC 59 3B ; 91 5B [ 123 7B {
28 1C FS 60 3C < 92 5C \ 124 7C |
29 1D GS 61 3D = 93 5D ] 125 7D }
30 1E RS 62 3E > 94 5E ^ 126 7E ~
31 1F US 63 3F ? 95 5F _ 127 7F DEL

Déci Hexa ASCII Déci Hexa ASCII Déci Hexa ASCII Déci Hexa ASCII
128 80 Ç 160 A0 á 192 C0 + 224 E0 Ó
129 81 ü 161 A1 í 193 C1 - 225 E1 ß
130 82 é 162 A2 ó 194 C2 - 226 E2 Ô
131 83 â 163 A3 ú 195 C3 + 227 E3 Ò
132 84 ä 164 A4 ñ 196 C4 - 228 E4 õ
133 85 à 165 A5 Ñ 197 C5 + 229 E5 Õ
134 86 å 166 A6 ª 198 C6 ã 230 E6 µ
135 87 ç 167 A7 º 199 C7 Ã 231 E7 þ
136 88 ê 168 A8 ¿ 200 C8 + 232 E8 Þ
137 89 ë 169 A9 ® 201 C9 + 233 E9 Ú
138 8A è 170 AA ¬ 202 CA - 234 EA Û
139 8B ï 171 AB ½ 203 CB - 235 EB Ù
140 8C î 172 AC ¼ 204 CC ¦ 236 EC ý
141 8D ì 173 AD ¡ 205 CD - 237 ED Ý
142 8E Ä 174 AE « 206 CE + 238 EE ¯
143 8F Å 175 AF » 207 CF ¤ 239 EF ´
144 90 É 176 B0 _ 208 D0 ð 240 F0
145 91 æ 177 B1 _ 209 D1 Ð 241 F1 ±
146 92 Æ 178 B2 _ 210 D2 Ê 242 F2 _
147 93 ô 179 B3 ¦ 211 D3 Ë 243 F3 ¾
148 94 ö 180 B4 ¦ 212 D4 È 244 F4 ¶
149 95 ò 181 B5 Á 213 D5 i 245 F5 §
150 96 û 182 B6 Â 214 D6 Í 246 F6 ÷
151 97 ù 183 B7 À 215 D7 Î 247 F7 ¸
152 98 ÿ 184 B8 © 216 D8 Ï 248 F8 °
153 99 Ö 185 B9 ¦ 217 D9 + 249 F9 ¨
154 9A Ü 186 BA ¦ 218 DA + 250 FA ·
155 9B ø 187 BB + 219 DB _ 251 FB ¹
156 9C £ 188 BC + 220 DC _ 252 FC ³
157 9D Ø 189 BD ¢ 221 DD ¦ 253 FD ²
158 9E × 190 BE ¥ 222 DE Ì 254 FE _
159 9F ƒ 191 BF + 223 DF _ 255 FF

Vous aimerez peut-être aussi