Vous êtes sur la page 1sur 7

2) Codification

Table des matires


1 Le code binaire 2
1.1 Prsentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Conversion par divisions euclidiennes . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Conversion par soustractions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.4 Addition de deux nombres binaires . . . . . . . . . . . . . . . . . . . . . . . . 2

2 Le code hexadcimal 3
2.1 Prsentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2 Conversion par divisions euclidiennes . . . . . . . . . . . . . . . . . . . . . . . 3
2.3 Tableau des 19 premiers nombres . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.4 Conversion Hexa/Binaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

3 Reprsentation des nombres entiers signs 4


3.1 Bit de signe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.2 Complment deux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.2.1 Convertir un nombre dcimal en code complment 2 sur n bits . . . . 4
3.2.2 Convertir un nombre en code complment 2 sur n bits en nombre dcimal 4

4 Reprsentation des nombres dcimaux 5


4.1 Nombre virgule fixe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
4.2 Nombre virgule flottante (float) . . . . . . . . . . . . . . . . . . . . . . . . . 5
4.3 Conversion dcimal vers IEEE 754 simple prcision . . . . . . . . . . . . . . . 5
4.4 Conversion IEEE 754 simple prcision vers dcimal . . . . . . . . . . . . . . . 6

5 Le code binaire rflchi (code Gray) 6


5.1 Prsentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
5.2 Codeur de position . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

6 Le code binaire BCD 7

7 Le code ASCII 7
7.1 Prsentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
7.2 Table des 128 caractres ASCII . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2) Codification

1 Le code binaire
1.1 Prsentation
Cest la reprsentation des nombres entiers avec seulement deux chiffres (base 2) : 0 et 1. Un
nombre N qui scrit bn bn1 bn2 ....b1 b0 (avec b=0 ou b=1) vaut : bi 2i
Ainsi : (0 ; 1 ; 2 ; 3 ; 4 ; 5 ; 6 ; 7...) devient (0 ; 1 ; 10 ; 11 ; 100 ; 101 ; 110 ; 111...)
Remarque : Les chiffres composants un nombre binaire sappellent bits.

1.2 Conversion par divisions euclidiennes


Il sagit de diviser rcursivement N par 2 et de considrer les restes. Exemple avec le nombre
76.

76 2
0 38 2
- 0 19 2
On a donc 76 = 100 1100(2)
- 1 9 2
Vrification :
- 1 4 2
100 1100(2) = 26 + 23 + 22 = 64 + 8 + 4 = 76
- 0 2 2
- 0 1

1.3 Conversion par soustractions


Il sagit de soustraire rcursivement N la puissance de 2 immdiatement infrieure.

76
-64
27 26 25 24 23 22 21 20
12
128 64 32 16 8 4 2 1
-8 76 = 0100 1100(2)

4
0 1 0 0 1 1 0 0
-4
0

1.4 Addition de deux nombres binaires


On procde comme avec les nombres dcimaux. Il suffit de mettre les deux nombres lun au-
dessus de lautre, et on fait laddition bit bit. Attention, il ne faut pas oublier la retenue.

1 1 1 1
0 0 1 1 1 0 1 0
+ 0 1 1 1 0 0 1 0
1 0 1 0 1 1 0 0
cira83.com 2/7
2) Codification

Les nombres entiers dans les appareils numriques sont reprsents avec un nombre n limit de
bits (gnralement 16 ou 32). Donc, on ne pourra reprsenter que les nombres compris entre
0 et 2n 1. Attention : si les nombres sont cods sur 8 bits, 1111 1111 + 1 = 0 ! Il y a
dbordement.

2 Le code hexadcimal
2.1 Prsentation
La reprsentation binaire des nombres amne vite des reprsentations de nombre trs longue.

1024 = 100 0000 0000(2)

Pour simplifier la reprsentation des nombres tout en se rapprochant de la reprsentation


binaire, on utilise la reprsentation hexadcimale. Cest la reprsentation des nombres avec 16
chiffres (base 16) : 0123456789ABCDEF.
Un nombre N qui scrit hn hn1 hn2 ....h1 h0 vaut : hi 16i
Ainsi : 1024 = 400(16)
Remarque : En base 16 un nombre est reprsent avec 4 fois moins de chiffres quen base 2.

2.2 Conversion par divisions euclidiennes


Il sagit de diviser rcursivement N par 16 et de considrer les restes.

76 16
-64 4 16 76 = 12 16 + 4
12 -0 0 76 = C4(16)
4

2.3 Tableau des 19 premiers nombres


Dcimal Binaire Hexadcimal Dcimal Binaire Hexadcimal
0 0000 00 10 1010 A
1 0001 01 11 1011 B
2 0010 02 12 1100 C
3 0011 03 13 1101 D
4 0100 04 14 1110 E
5 0101 05 15 1111 F
6 0110 06 16 1 0000 10
7 0111 07 17 1 0001 11
8 1000 08 18 1 0010 12
9 1001 09 19 1 0011 13

3/7 cira83.com
2) Codification 2.4 Conversion Hexa/Binaire

2.4 Conversion Hexa/Binaire


Comme 16=24 , le technique consiste grouper les bits par quatre et dutiliser le tableau ci-
avant. Exemple :
0011
|{z} 1010
|{z} 1100
|{z} 0111
|{z} En binaire
3 A C 7 En hexadcimal

3 Reprsentation des nombres entiers signs


3.1 Bit de signe
Pour complter la reprsentation des entiers, il faut pouvoir crire des entiers ngatifs. On
ajoute pour cela la reprsentation un bit de signe, plac en tte. Un bit de signe 0 indique
une valeur positive, un bit de signe positionn 1 une valeur ngative. Cette rgle permet de
rester cohrent avec le systme de reprsentation des entiers positifs : il suffit dajouter un 0
en tte de chaque valeur.
0000 0111(bitdesigne8bits) =+7 ;
1000 0111(bitdesigne8bits) =-7 ;
Ce code nest pas utilis par le microprocesseur car la somme dune chiffre positif et du mme
chiffre mais ngatif ne donne pas 0.

3.2 Complment deux


Finalement, il faut que x+(-x) = 0000. Cest le nombre que lon appelle le complment 2.
Exemple :
1 1 1 1 1 1 1 1
0 0 0 0 0 1 1 1
+ 1 1 1 1 1 0 0 1
1 0 0 0 0 0 0 0 0
Ainsi, 1111 1001(C28bits) =-7 Comme prcdemment, les nombres dbutants par un 1, sont
ngatifs.

3.2.1 Convertir un nombre dcimal en code complment 2 sur n bits


Si le nombre X est positif, il suffit de le convertir X en nombre binaire ;
Si le nombre X est ngatif, il suffit de le convertir 2n + X en nombre binaire, puis de ne
prendre que les n derniers bits. X sera cod sur n bits.
Remarque : Avec n bits, ce systme permet de reprsenter les nombres entre -2n1 et 2n1 -1.

3.2.2 Convertir un nombre en code complment 2 sur n bits en nombre dcimal

1 1 0 0 1 1 0 0
27 26 25 24 23 22 21 20
Exemple sur 8 bits :
-128 64 32 16 8 4 2 1
1100 1100(C2) =-128+64+8+4=-52

-128 64 0 0 8 4 0 0

cira83.com 4/7
2) Codification

4 Reprsentation des nombres dcimaux


4.1 Nombre virgule fixe
Comme la dfinition des nombres binaires naturels, on peut dfinir un nombre dcimal positif
par une convention du mme type, la virgule tant place un endroit fixe :
1010, 1010( 2, ) = 23 + 21 + 21 + 23 = 8 + 2 + 0, 5 + 0, 125 = 10, 625
Dans le sens inverse, prenons N = 6,625 (Pour la partie avant la virgule, il suffit de faire comme
dans le paragraphe 1.2.
0, 625 2 = 1, 25 : je pose 1 et je le retranche 6, 625 = 110, 1(2,) ;
0, 25 2 = 0, 5 : je pose 0 6, 625 = 110, 10(2,) ;
0, 5 2 = 1, 0 : je pose 1 et je le retranche 6, 625 = 110, 101(2,) ;
Avec notre codage sur 8 bits 6, 625 = 0110, 1010(2,) .
Remarque : Ce codage est trs peu utilis, il ne permet pas davoir une grand rapport
Nmax/Nmin.

4.2 Nombre virgule flottante (float)


La norme IEEE 754 dfinie le code de reprsentation dun nombre dcimal sur 32 bits (single)
avec trois composantes :
Le signe est reprsent par un seul bit, le bit de poids fort (celui le plus gauche) ;
Lexposant est cod sur les 8 bits conscutifs au signe ;
La mantisse sur les 23 bits restants.

Signe Exposant Mantisse


1 bit 8bits 23bits
x xxxx xxxx xxx xxxx xxxx xxxx xxxx xxxx

On a : N = (Signe)2(Exposant127) 1,Mantisse(2)
Attention :
Signe = 1 : nombre ngatif ;
Lexposant 0 est interdit ;
Lexposant 255 est interdit. On sen sert toutefois pour signaler des erreurs, on appelle
alors cette configuration du nombre NaN, ce qui signifie Not a Number.

4.3 Conversion dcimal vers IEEE 754 simple prcision


Rien ne vaut un exemple, donc prenons N = -6,625.
Signe ngatif signe = 1 ;
On utilise la mthode de la virgule fixe : 6,625 = 110,101(2)
110,101(2,) = 1,10101(2,) 22 exposant = 127 + 2 = 128 + 1 = 1000 0001(2)

Signe Exposant Mantisse


1 bit 8bits 23bits
1 1000 0001 101 0100 0000 0000 0000 0000

5/7 cira83.com
2) Codification 4.4 Conversion IEEE 754 simple prcision vers dcimal

4.4 Conversion IEEE 754 simple prcision vers dcimal


Soit N = 1 1000 0100 110 1000 0000 0000 0000 0000(f loat32)
1000 0100(2) = 128 + 4 = 127 + 5
N = (-1) 1.1101(2) 25 = (-1) 11 1010(2)
N = (1) (25 + 24 + 23 + 21 ) = (1) (32 + 16 + 8 + 2) = 58

5 Le code binaire rflchi (code Gray)


5.1 Prsentation
Cest un codage qui a la particularit de ne changer quun bit lors du passage dune valeur
sa suivante. De plus, on opre de telle manire que le bit modifi soit dun poids le plus faible
possible.

0 0
1 1
crire les deux premires valeurs : 0 et 1 ; 2 1 1
Ajouter 1 devant les 21 suivants ; 3 1 0
Par un effet miroir on complte les premiers bits ;
4 1 1 0
Ajouter 1 devant les 22 suivants ;
5 1 1 1
Par un effet miroir on complte les premiers bits ;
6 1 0 1
7 1 0 0

Ainsi : (0 ; 1 ; 2 ; 3 ; 4 ; 5 ; 6 ; 7...) devient (000 ; 001 ; 011 ; 010 ; 110 ; 111 ; 101 ; 100...)

5.2 Codeur de position


Ce code est surtout utilis pour des capteurs de positions absolue, comme les rgles optiques.
Il permet une rsolution double de la rgle avec la mme prcision de gravure.
00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15
b0
b1 Code
b2 naturel
b3
b0
b1 Code
b2 GRAY
b3

cira83.com 6/7
2) Codification

6 Le code binaire BCD


Il suffit de remplacer chaque chiffre dcimal par son image binaire de quatre bits.
0011
|{z} 0110
|{z} 0101
|{z} 0111
|{z} (BCD)
3 6 5 7 Dcimal

7 Le code ASCII
7.1 Prsentation
La norme ASCII (American Standard Code for Information Interchange Code amricain
normalis pour lchange dinformation ) est la norme de codage de caractres en informatique
la plus connue et la plus largement compatible. Cest galement la variante amricaine du
codage de caractres ISO/CEI 646. ASCII contient les caractres ncessaires pour crire en
anglais. Elle a t invente par lamricain Bob Bemer en 1961. Elle est la base de nombreuses
autres normes comme ISO 8859-1 et Unicode qui ltendent. LASCII dfinit 128 caractres
numrots de 0 127 et cods en binaire de 0000000 1111111. Sept bits suffisent donc pour
reprsenter un caractre cod en ASCII. Toutefois, les ordinateurs travaillant presque tous
sur huit bits (un octet) depuis les annes 1970, chaque caractre dun texte en ASCII est
stock dans un octet dont le 8e bit est 0. Les caractres de numro 0 31 et le 127 ne sont
pas affichables ; ils correspondent des commandes de contrle de terminal informatique. Le
caractre numro 32 est lespace. Les autres caractres sont les chiffres arabes, les lettres latines
majuscules et minuscules et quelques symboles de ponctuation. (Daprs WIKIPEDIA)

7.2 Table des 128 caractres ASCII


0 1 2 3 4 5 6 7 8 9 A B C D E F
0 eot bel bs lf ff cr
1 esc
2 sp ! # $ % & ( ) * + , - . /
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
7 p q r s t u v w x y z { | } del

Ce tableau nest pas apprendre par cur il est toutefois trois points de repre simples :
Le zro est cod 30(16) et les autres chiffres suivent ;
Le "A" majuscule est cod 41(16) et les autres lettres suivent ;
Le "a" minuscule est cod 61(16) et les autres lettres suivent.
Cette faon de coder les lettres nest pas anodine. Elle permet, par exemple, le classement
alphabtique car le codage de A est un nombre infrieur celui qui code B donc est class
avant.

7/7 cira83.com