You are on page 1of 31

[Title of the course] 31-Oct-11

Copyright 2004-2005 NameOfTheOrganization. All rights reserved. 1


FSAC 2011-2012
Le codage des
informations
Objectifs de ce chapitre
Dcouvrir larithmtique dans les
bases 2, 8 et 16.
Comprendre comment sont cods les
rels selon le format IEEE 754 et
comment sont ralises les oprations
dans ce format.
Connatre la manire dont sont cods
les caractres dans les ordinateurs
grce aux tables ASCII et UNICODE.
En suivant ce chapitre vous allez :
Le codage des informations
Plan du chapitre
Le codage des entiers et
larithmtique binaire.
Les codages hexadcimal,
octal et DCB.
Le codage des rels.
Le codage des textes.
Voici les parties que nous allons aborder :
Le codage des informations
[Title of the course] 31-Oct-11
Copyright 2004-2005 NameOfTheOrganization. All rights reserved. 2
Le codage des entiers et
larithmtique binaire
Le codage des informations
Plan de la partie
Histoire de la numrotation binaire.
Binaire positif vers dcimal positif.
Dcimal positif vers binaire positif.
Addition des binaires positifs.
Soustraction des binaires positifs.
Codage des nombres binaires ngatifs.
Soustraction des binaires positifs (bis).
Multiplication des binaires.
Division des binaires.
Voici les parties que nous allons aborder :
Le codage des entiers et larithmtique binaire
Histoire de la numrotation binaire
Einer hat alles aus nichts
gemacht.
Gottfried Wilhem Leibniz
Le codage de entiers et larithmtique binaire
Tout est cr partir de l'unit
(1, Dieu) et du nant (0).
[Title of the course] 31-Oct-11
Copyright 2004-2005 NameOfTheOrganization. All rights reserved. 3
Binaire positif vers dcimal positif
Le codage des entiers et larithmtique binaire
Mthode de conversion Le principe
Un nombre binaire scrit avec deux chiffres (1 et 0).
Il est possible de dterminer la valeur dcimale associe
grce un tableau de correspondance.
Nombre binaire
Coefficients
Nombre dcimal + + + + = 21 16
1
2
4

0
0
2
3

4
1
2
2

0
0
2
1

1
1
2
0

16 8 4 2 1
Binaire positif vers dcimal positif
Le codage des entiers et larithmtique binaire
Mthode de conversion Dun point de vue mathmatique
En base 10, si un nombre N scrit xyz
10
, cela signifie que :
N = x.100 + y.10 + z.1
N = x.10
2
+ y.10
1
+ z.10
0
Mme principe en base 2
Si un nombre M scrit abcde
2
, cela signifie que :
M = a.2
4
+ b.2
3
+ c.2
2
+ d.2
1
+ e.2
0
M = a.16 + b.8 + c.4 + d.2 + e.1
Binaire positif vers dcimal positif
Le codage des entiers et larithmtique binaire
Exemple
Si N = 1011010
2
, nous obtenons :
N = 12
6
+ 02
5
+ 12
4
+ 12
3
+ 02
2
+ 12
1
+ 02
0
N = 164 + 032 + 116 + 18 + 04 + 12 + 01
N = 90
10
[Title of the course] 31-Oct-11
Copyright 2004-2005 NameOfTheOrganization. All rights reserved. 4
Dcimal positif vers binaire positif
Le codage des entiers et larithmtique binaire
Premire mthode (les divisions successives)
Soit un nombre N = xyz
10
crit en base 10, nous devons
crire ce mme nombre sous la forme :
N = N
0
= a
n
. 2
n
+ a
n-1
. 2
n-1
+ a
0
. 2
0
Pour cela, nous effectuons une srie de divisions par 2 :
Si nous divisons N
0
par 2, nous obtenons :
un reste qui correspond a
0
;
un quotient qui devient le nombre N
1
qui sera divis
par 2 au coup suivant
Nous nous arrtons quand N
i
est gal 0.
Dcimal positif vers binaire positif
Le codage des entiers et larithmtique binaire
Exemple
Si N = 90
10
, nous obtenons :
En lisant de droite gauche, nous retrouvons 1011010
2
.
2
45
90
-90
0
2
22
45
-44
1
2
11
22
-22
0
2
5
11
-10
1
2
2
5
-4
1
2
1
2
-2
0
2
0
1
-0
1
Dcimal positif vers binaire positif
Le codage des entiers et larithmtique binaire
Seconde mthode (algorithme dcriture)
Nous posons les variables suivantes :
N est le nombre dcimal transformer.
B est le nombre binaire obtenu lissu du traitement.
M est la puissance de 2 en cours
mMax est la puissance de 2 de dpart, cette variable
entire correspond galement au nombre de chiffres
avec lesquels sera crit B. Gnralement ce nombre est
fix de la manire suivante :
nous prenons la puissance de 2 (2
k
), immdiatement
infrieur N ;
nous fixons alors mMax = k+1.
[Title of the course] 31-Oct-11
Copyright 2004-2005 NameOfTheOrganization. All rights reserved. 5
Dcimal positif vers binaire positif
Le codage des entiers et larithmtique binaire
Seconde mthode (algorithme dcriture)
Dbut
End
m0
non
Ajouter
1 B
B=
m=mMax
Ajouter
0 B
N = N 2
m
2
m
>N
m = m 1
non oui
oui
Saisie de N
Afficher B
Dcimal positif vers binaire positif
Le codage des entiers et larithmtique binaire
Exemple
Si N = 26
10
et mMax = 5
10
, nous obtenons :
M Test N B
dpart 26
5 2
5
=32 > 26 26 0
4 2
4
=16 26 10 = 26 16 01
3 2
3
=8 10 2 = 10 8 011
2 2
2
=4 > 2 2 0110
1 2
1
=2 2 0 = 2 2 01101
0 2
0
=1 > 0 0 011010
Addition des binaires positifs
Le codage des entiers et larithmtique binaire
Mthode manuelle avec propagation de la retenue
Mme principe que laddition la main en base 10.
Retenue cre lorsque la somme dpasse 1
2
.
4 cas de figure :
0
2
+ 0
2
= 0
2
0
2
+ 1
2
= 1
2
1
2
+ 0
2
= 1
2
1
2
+ 1
2
= 12
1
+ 02
0
= 10
2
(nous crons une retenue)
[Title of the course] 31-Oct-11
Copyright 2004-2005 NameOfTheOrganization. All rights reserved. 6
Addition des binaires positifs
Le codage des entiers et larithmtique binaire
Exemple
Additionner 10111011
2
et 1101
2
Addition binaire Addition dcimale
1 8 7
+ 1 3
1 0 1 1 1 0 1 1
+ 1 1 0 1
1
1 0 1 1 1 0 1 1
+ 1 1 0 1
0
1 1
1 0 1 1 1 0 1 1
+ 1 1 0 1
0 0
1 1 1
1 0 1 1 1 0 1 1
+ 1 1 0 1
0 0 0
1 1 1 1
1 0 1 1 1 0 1 1
+ 1 1 0 1
1 0 0 0
1 1 1 1 1
1 0 1 1 1 0 1 1
+ 1 1 0 1
0 1 0 0 0
1 1 1 1 1 1
1 0 1 1 1 0 1 1
+ 1 1 0 1
0 0 1 0 0 0
1 1 1 1 1 1
1 0 1 1 1 0 1 1
+ 1 1 0 1
1 0 0 1 0 0 0
1 1 1 1 1 1
1 0 1 1 1 0 1 1
+ 1 1 0 1
1 1 0 0 1 0 0 0
1
1 8 7
+ 1 3
0
1 1
1 8 7
+ 1 3
0 0
1 1
1 8 7
+ 1 3
2 0 0
Soustraction des binaires positifs
Le codage des entiers et larithmtique binaire
Mthode manuelle avec propagation de la retenue ngative
Mme principe que la soustraction la main en base 10.
Retenue cre lorsque la diffrence est infrieure 0
2
4 cas de figure :
0
2
0
2
= 0
2
1
2
1
2
= 0
2
1
2
0
2
= 1
2
0
2
1
2
= 10
2
1
2
10
2
= 1
2
10
2
(retenue ngative)
Soustraction des binaires positifs
Le codage des entiers et larithmtique binaire
Exemple
Soustraire 1101
2
11001000
2
Soustraction binaire Soustraction dcimale
2 0 0
1 3
1 1 0 0 1 0 0 0
1 1 0 1
-1
1 1 0 0 1 0 0 10
1 1 0 1
1
-1 -1
1 1 0 0 1 0 10 10
1 1 0 1
1 1
-1 -1 -1
1 1 0 0 1 10 10 10
1 1 0 1
0 1 1
-1 -1 -1 -1
1 1 0 0 11 10 10 10
1 1 0 1
1 0 1 1
-1 -1 -1 -1 -1
1 1 0 10 11 10 10 10
1 1 0 1
1 1 0 1 1
-1 -1 -1 -1 -1 -1
1 1 10 10 11 10 10 10
1 1 0 1
1 1 1 0 1 1
-1 -1 -1 -1 -1 -1
1 1 10 10 11 10 10 10
1 1 0 1
0 1 1 1 0 1 1
-1 -1 -1 -1 -1 -1
1 1 10 10 11 10 10 10
1 1 0 1
1 0 1 1 1 0 1 1
-1
2 0 10
1 3
7
-1 -1
2 10 10
1 3
8 7
-1 -1
2 10 10
1 3
1 8 7
[Title of the course] 31-Oct-11
Copyright 2004-2005 NameOfTheOrganization. All rights reserved. 7
Codage des nombres binaires ngatifs
Le codage des entiers et larithmtique binaire
Le principe
Nombre sign.
3 codages possibles :
coder par bit de signe et valeur absolue ;
utiliser le complment 1 ;
utiliser le complment 2.
Codage des nombres binaires ngatifs
Le codage des entiers et larithmtique binaire
Codage par bit de signe et valeur absolue
Signe port par le bit de poids fort :
0 pour une valeur positive ;
1 pour une valeur ngative.
Les autres bits servent coder la valeur absolue.
Valeur positive Valeur ngative
00001011
2
= 11
10
10001011
2
= 11
10
00000000
2
= 0
10
10000000
2
= 0
10
Codage des nombres binaires ngatifs
Le codage de entiers et larithmtique binaire
Complment 1
Signe encore port par le bit de poids fort.
Nous passons dune valeur son oppose en inversant les
bits.
Valeur positive Valeur ngative
00001011
2
= 11
10
11110100
2
= 11
10
00000000
2
= 0
10
11111111
2
= 0
10
[Title of the course] 31-Oct-11
Copyright 2004-2005 NameOfTheOrganization. All rights reserved. 8
Codage des nombres binaires ngatifs
Le codage des entier et larithmtique binaire
Complment 2
Signe toujours port par le bit de poids fort.
Nous construisons le complment 2 en ajoutant 1 au
complment 1 dcrit prcdemment.
Seffectue en ayant fix le nombre de bits utiliss
pour coder les nombres (ici 8 bits).
Valeur positive Valeur ngative
00001011
2
= 11
10
11110100
2
+ 1
2
= 11110101
2
= 11
10
00000000
2
= 0
10
11111111
2
+ 1
2
= 00000000
2
= 0
10
Codage des nombres binaires ngatifs
Le codage des entiers et larithmtique binaire
Complment 2
Encore appel complment vrai .
Nous sommons un nombre et son contraire : nous
obtenons bien 0 car nous perdons la dernire retenue
(addition sur un nombre limit de bits).
Addition binaire Addition dcimale
-1 1
+ 1 1
1 1 1 1 0 1 0 1
+ 0 0 0 0 1 0 1 1
1
1 1 1 1 0 1 0 1
+ 0 0 0 0 1 0 1 1
0
1 1
1 1 1 1 0 1 0 1
+ 0 0 0 0 1 0 1 1
0 0
1 1 1
1 1 1 1 0 1 0 1
+ 0 0 0 0 1 0 1 1
0 0 0
1 1 1 1
1 1 1 1 0 1 0 1
+ 0 0 0 0 1 0 1 1
0 0 0 0
1 1 1 1 1
1 1 1 1 0 1 0 1
+ 0 0 0 0 1 0 1 1
0 0 0 0 0
1 1 1 1 1 1
1 1 1 1 0 1 0 1
+ 0 0 0 0 1 0 1 1
0 0 0 0 0 0
1 1 1 1 1 1 1
1 1 1 1 0 1 0 1
+ 0 0 0 0 1 0 1 1
1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
-1 1
+ 1 1
0 0
Soustraction des binaires positifs (bis)
Le codage des entiers et larithmtique binaire
Mthode par addition du complment 2
Plus facilement transposable en lectronique.
Ncessite de fixer le nombre de bits sur lequel nous
travaillons.
Supposons la soustraction A B, le processus est le
suivant :
construire le complment 2 de B (nous obtenons B)
sommer A et B
[Title of the course] 31-Oct-11
Copyright 2004-2005 NameOfTheOrganization. All rights reserved. 9
Soustraction des binaires positifs (bis)
Le codage des entiers et larithmtique binaire
Exemple
Soustraire 16
10
47
10
Etape 1 : Traduire en binaire
Etape 2 : Effectuer laddition
Addition binaire Soustraction dcimale
0 0 1 0 1 1 1 1
+ 1 1 1 1 0 0 0 0
Dcimal Binaire Complment 1 Complment 2
47 00101111 11010000 11010001
16 00010000 11101111 11110000
4 7
1 6
00101111
11110000
0 0 1 0 1 1 1 1
+ 1 1 1 1 0 0 0 0
1
0 0 1 0 1 1 1 1
+ 1 1 1 1 0 0 0 0
1 1
0 0 1 0 1 1 1 1
+ 1 1 1 1 0 0 0 0
1 1 1
0 0 1 0 1 1 1 1
+ 1 1 1 1 0 0 0 0
1 1 1 1
0 0 1 0 1 1 1 1
+ 1 1 1 1 0 0 0 0
1 1 1 1 1
1
0 0 1 0 1 1 1 1
+ 1 1 1 1 0 0 0 0
0 1 1 1 1 1
1 1
0 0 1 0 1 1 1 1
+ 1 1 1 1 0 0 0 0
0 0 1 1 1 1 1
1 1
0 0 1 0 1 1 1 1
+ 1 1 1 1 0 0 0 0
1 0 0 0 1 1 1 1 1
4 7
1 6
3 1
Multiplication des binaires
Le codage des entiers et larithmtique binaire
La multiplication par une puissance de 2
Se traduit par un dcalage vers la gauche du nombre
multipli.
Nombre de crans correspondant la puissance de deux de
llment multiplicateur.
Supposons deux nombres A et B, tel que B=2
N
:
B scrit 1 suivi de N 0
A B scrit donc A suivi de N 0
Multiplication des binaires
Le codage des entiers et larithmtique binaire
Exemple de multiplication par une puissance de 2
Soient A = 101101110111001
2
et B = 10000
2
.
Nous obtenons A B = 1011011101110010000
2
.
Si nous traduisons ces 3 nombres en base 10, nous avons :
A = 23481
10
B = 16
10
A B = 375696
10
= 23481
10
16
10
[Title of the course] 31-Oct-11
Copyright 2004-2005 NameOfTheOrganization. All rights reserved. 10
Multiplication des binaires
Le codage des entiers et larithmtique binaire
Le principe de la multiplication de deux binaires
Plusieurs multiplications successives par des puissances
de 2 croissantes (plusieurs dcalages).
Une addition des produits intermdiaires pour former le
rsultat final.
Multiplication des binaires
Le codage des entiers et larithmtique binaire
Exemple
Multiplier 10100111
2
1100
2
Multiplication binaire Multiplication dcimale
1 6 7
1 2
1 0 1 0 0 1 1 1
1 1 0 0
1 0 1 0 0 1 1 1
1 1 0 0
0 0 0 0 0 0 0 0
1 0 1 0 0 1 1 1
1 1 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
1 0 1 0 0 1 1 1
1 1 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
1 0 1 0 0 1 1 1 0 0
1 0 1 0 0 1 1 1
1 1 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
1 0 1 0 0 1 1 1 0 0
1 0 1 0 0 1 1 1 0 0 0
1 0 1 0 0 1 1 1
1 1 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
1 0 1 0 0 1 1 1 0 0
+ 1 0 1 0 0 1 1 1 0 0 0
1 0 1 0 0 1 1 1
1 1 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
1 0 1 0 0 1 1 1 0 0
+ 1 0 1 0 0 1 1 1 0 0 0
0
1 0 1 0 0 1 1 1
1 1 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
1 0 1 0 0 1 1 1 0 0
+ 1 0 1 0 0 1 1 1 0 0 0
0 0
1 0 1 0 0 1 1 1
1 1 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
1 0 1 0 0 1 1 1 0 0
+ 1 0 1 0 0 1 1 1 0 0 0
1 0 0
1 0 1 0 0 1 1 1
1 1 0 0
1
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
1 0 1 0 0 1 1 1 0 0
+ 1 0 1 0 0 1 1 1 0 0 0
0 1 0 0
1 0 1 0 0 1 1 1
1 1 0 0
1 1
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
1 0 1 0 0 1 1 1 0 0
+ 1 0 1 0 0 1 1 1 0 0 0
1 0 1 0 0
1 0 1 0 0 1 1 1
1 1 0 0
1 1 1
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
1 0 1 0 0 1 1 1 0 0
+ 1 0 1 0 0 1 1 1 0 0 0
0 1 0 1 0 0
1 0 1 0 0 1 1 1
1 1 0 0
1 1 1
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
1 0 1 0 0 1 1 1 0 0
+ 1 0 1 0 0 1 1 1 0 0 0
1 0 1 0 1 0 0
1 0 1 0 0 1 1 1
1 1 0 0
1 1 1
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
1 0 1 0 0 1 1 1 0 0
+ 1 0 1 0 0 1 1 1 0 0 0
1 1 0 1 0 1 0 0
1 0 1 0 0 1 1 1
1 1 0 0
1 1 1
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
1 0 1 0 0 1 1 1 0 0
+ 1 0 1 0 0 1 1 1 0 0 0
1 1 1 0 1 0 1 0 0
1 0 1 0 0 1 1 1
1 1 0 0
1 1 1
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
1 0 1 0 0 1 1 1 0 0
+ 1 0 1 0 0 1 1 1 0 0 0
1 1 1 1 0 1 0 1 0 0
1 0 1 0 0 1 1 1
1 1 0 0
1 1 1
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
1 0 1 0 0 1 1 1 0 0
+ 1 0 1 0 0 1 1 1 0 0 0
1 1 1 1 1 0 1 0 1 0 0
1 6 7
1 2
3 3 4
1 6 7
1 2
3 3 4
1 6 7 0
1 6 7
1 2
3 3 4
+ 1 6 7 0
1 6 7
1 2
3 3 4
+ 1 6 7 0
4
1 6 7
1 2
1
3 3 4
+ 1 6 7 0
0 4
1 6 7
1 2
1 1
3 3 4
+ 1 6 7 0
0 0 4
1 6 7
1 2
1 1
3 3 4
+ 1 6 7 0
2 0 0 4
Division des binaires
Le codage des entiers et larithmtique binaire
La division par une puissance de 2
Se traduit par un dcalage vers la droite du nombre
divis.
Nombre de crans correspondant la puissance de deux de
llment diviseur.
Supposons deux nombres A et B, tel que B=2
N
:
B scrit 1 suivi de N 0
A / B scrit donc A priv des N bits de poids faible
La division entire se traduit donc par la perte des bits
de poids faible.
[Title of the course] 31-Oct-11
Copyright 2004-2005 NameOfTheOrganization. All rights reserved. 11
Division des binaires
Le codage des entiers et larithmtique binaire
Exemple de division par une puissance de 2
Soient A = 101101110111001
2
et B = 10000
2
.
Nous obtenons A / B = 101101110111001
2
.
Si nous traduisons ces 3 nombres en base 10, nous avons :
A = 23481
10
B = 16
10
A / B = 1467
10
Division des binaires
Le codage des entiers et larithmtique binaire
Le principe de la division de deux binaires
La division manuelle de deux binaires seffectue de la
mme manire que la division manuelle de deux dcimaux.
Pour dcrire le processus, nous supposons deux nombres
binaires A et B. Nous posons alors les notations suivantes :
n
A
est la taille (en nombre de chiffres) du nombre A
n
B
est la taille (en nombre de chiffres) du nombre B
b
1
et b
2
sont des numros de bits (pour un binaire ayant
une taille de N, les bits sont numrots de 0 N-1, le
bit 0 tant celui de poids faible
A est un nombre binaire form en prenant les bits de A
dont les numros sont compris entre b
1
et b
2
Division des binaires
Le codage des entiers et larithmtique binaire
Le principe de la division de deux binaires (A/B)
Dbut
Fin
non
oui
Quotient =
b
1
-b
2
n
B
Construire A en
prenant les bits
numro b
1
b
2
A B
Ajouter 1
au quotient
Ajouter 0
quotient
b
1
= n
A
-1
b
2
= max (0, b
1
n
B
)
b
2
= b
2
-1
A = A B
oui
non
[Title of the course] 31-Oct-11
Copyright 2004-2005 NameOfTheOrganization. All rights reserved. 12
Division des binaires
Le codage des entiers et larithmtique binaire
Exemple
Diviser 10110111
2
par 1100
2
Nous avons 1111
2
= 15
10
pour le quotient et 11
2
= 3
10
pour le
reste de la division.
Division binaire Division dcimale
10110111 1 100 1 8 3 1 2 10110111 1 100 10110111 1 100
0
10110111 1 100
0
10110111 1 100
0 1
10110111 1 100
1100 0 1
10110111 1 100
1100 0 1
1010
10110111 1 100
1100 0 1
1010111
10110111 1 100
1100 0 1
1010111
10110111 1 100
1100 0 1 1
1010111
10110111 1 100
1100 0 1 1
1010111
110 0
10110111 1 100
1100 0 1 1
1010111
110 0
100 1
10110111 1 100
1100 0 1 1
1010111
110 0
100111
10110111 1 100
1100 0 1 1
1010111
110 0
100111
10110111 1 100
1100 0 111
1010111
110 0
100111
10110111 1 100
1100 0 111
1010111
110 0
100111
1100
10110111 1 100
1100 0 111
1010111
110 0
100111
1100
111
10110111 1 100
1100 0 111
1010111
110 0
100111
1100
1111
10110111 1 100
1100 0 111
1010111
110 0
100111
1100
1111
10110111 1 100
1100 0 1111
1010111
110 0
100111
1100
1111
10110111 1 100
1100 0 1111
1010111
110 0
100111
1100
1111
1100
10110111 1 100
1100 0 1111
1010111
110 0
100111
1100
1111
1100
11
10110111 1 100
1100 0 1111
1010111
110 0
100111
1100
1111
1100
11
1 8 3 1 2 1 8 3 1 2
1
1 8 3 1 2
1 2 1
6
1 8 3 1 2
1 2 1
6 3
1 8 3 1 2
1 2 1
6 3
1 8 3 1 2
1 2 1 5
6 3
1 8 3 1 2
1 2 1 5
6 3
6 0
1 8 3 1 2
1 2 1 5
6 3
6 0
3
1 8 3 1 2
1 2 1 5
6 3
6 0
3
Pause-rflexion sur cette 1
re
partie
Avez-vous des questions ?
Le codage des entiers et larithmtique binaire
Les codages hexadcimal,
octal et DCB
Le codage des informations
[Title of the course] 31-Oct-11
Copyright 2004-2005 NameOfTheOrganization. All rights reserved. 13
Plan de la partie
Le codage hexadcimal.
Le codage octal.
Le codage DCB.
Voici les parties que nous allons aborder :
Les codages hexadcimal, octal et DCB
Le codage hexadcimal
Les codages hexadcimal, octal et DCB
Le principe
Lhexa permet de manipuler des nombres en base 16.
Nous disposons :
des 10 chiffres (0 jusqu 9)
des 6 premires lettres (A, B, C, D, E et F).
Ce codage est largement utilis aujourdhui car, il permet de
manipuler les octets comme des blocs de chiffres
hexadcimaux, ce qui vite quelques erreurs de calcul.
Les oprations sur ce type de base suivent les principes
noncs prcdemment pour les binaires.
Le codage hexadcimal
Les codages hexadcimal, octal et DCB
Conversion hexadcimal vers dcimal
A linstar du codage binaire, il est possible de dterminer la
valeur dcimale associe un nombre hexadcimal en
utilisant un tableau de correspondance.
Nombre hexa.
Valeurs
Coefficients
1 A F 0 C
16
4

16
3

16
2

16
1

65536 40960 3840 0 12
16
0

= 110348 + + + + Nombre dcimal
1 10 15 0 12
4096 256 16 65536 1
[Title of the course] 31-Oct-11
Copyright 2004-2005 NameOfTheOrganization. All rights reserved. 14
Le codage hexadcimal
Les codages hexadcimal, octal et DCB
Conversion dcimal vers hexadcimal
Comme pour le codage binaire, il est galement possible
de convertir un nombre dcimal en hexadcimal grce
une suite de division par 16.
Si nous considrons la conversion du nombre 2765
10
:
Si nous lisons de droite gauche, 10, 12 et 13 soit ACD
16
16
172
2765
-2752
13
16
10
172
-160
12
16
0
10
- 0
10
Le codage hexadcimal
Les codages hexadcimal, octal et DCB
Conversion hxadcimal vers binaire
La conversion hexadcimal vers binaire seffectue trs
simplement car un nombre hexadcimal correspond un
bloc de quatre bit (quartet).
Nombre hexadcimal
Quartets
Nombre binaire
1 A F 0 C
0001 1010 1111 0000 1100
00011010111100001100
Le codage hexadcimal
Les codages hexadcimal, octal et DCB
Conversion binaire vers hexadcimal
Pour effectuer la conversion inversion, il suffit de scinder le
nombre binaire en quartet (en commenant par les bit de
poids faible) puis de convertir chaque quartet pour obtenir
le nombre hexadcimal correspondant.
Nombre binaire
Quartets
Nombre hexadcimal
0010 1101 0110 1001 1000
101101011010011000
2 D 6 9 8
[Title of the course] 31-Oct-11
Copyright 2004-2005 NameOfTheOrganization. All rights reserved. 15
Le codage hexadcimal
Les codages hexadcimal, octal et DCB
0
1
2
000000
000001
000010
00
01
02
Dcimal Binaire Hexa
3
4
5
000011
000100
000101
03
04
05
6
7
8
000110
000111
001000
06
07
08
9
10
001001
001010
09
0A
11
12
13
001011
001100
001101
0B
0C
0D
14
15
16
001110
001111
010000
0E
0F
10
17
18
19
010001
010010
010011
11
12
13
Dcimal Binaire Hexa
20
21
22
010100
010101
010110
14
15
16
23
24
25
010111
011000
011001
17
18
19
26
27
011010
011011
1A
1B
28
29
30
011100
011101
011110
1C
1D
1E
31
32
33
011111
100000
100001
1F
20
21
La table de correspondance
Le codage hexadcimal
Les codages hexadcimal, octal et DCB
Laddition manuelle avec propagation de la retenue
Mme principe que laddition la main en base 10.
Retenue cre lorsque la somme dpasse F
16
.
16*16 cas de figure regroups dans le tableau de la
diapositive suivante.
Le codage hexadcimal
Les codages hexadcimal, octal et DCB
Table daddition
5
5
C
C
B
B
A
A
9
9
8
8
7
7
6
6
2
2
4
4
3
3 0
1
1
0
0
F
F
E
E
D
D
6 D C B A 9 8 7 3 5 4 1 2 1 10 F E
7 E D C B A 9 8 4 6 5 2 3 2 11 10 F
8 F E D C B A 9 5 7 6 3 4 3 12 11 10
9 10 F E D C B A 6 8 7 4 5 4 13 12 11
A 11 10 F E D C B 7 9 8 5 6 5 14 13 12
B 12 11 10 F E D C 8 A 9 6 7 6 15 14 13
C 13 12 11 10 F E D 9 B A 7 8 7 16 15 14
D 14 13 12 11 10 F E A C B 8 9 8 17 16 15
E 15 14 13 12 11 10 F B D C 9 A 9 18 17 16
F 16 15 14 13 12 11 10 C E D A B A 19 18 17
10 17 16 15 14 13 12 11 D F E B C B 1A 19 18
11 18 17 16 15 14 13 12 E 10 F C D C 1B 1A 19
12 19 18 17 16 15 14 13 F 11 10 D E D 1C 1B 1A
13 1A 19 18 17 16 15 14 10 12 11 E F E 1D 1C 1B
14 1B 1A 19 18 17 16 15 11 13 12 F 10 F 1E 1D 1C
[Title of the course] 31-Oct-11
Copyright 2004-2005 NameOfTheOrganization. All rights reserved. 16
Le codage hexadcimal
Les codages hexadcimal, octal et DCB
Exemple
Additionner A8D23F1D
16
et ABCD
16
Addition hexadcimale Addition dcimale
A 8 D 2 3 F 1 D
+ A B C D
1
A 8 D 2 3 F 1 D
+ A B C D
A
1
A 8 D 2 3 F 1 D
+ A B C D
E A
1 1
A 8 D 2 3 F 1 D
+ A B C D
A 8 D 2 E A E A
2 8 3 2 3 5 1 0 0 5
+ 4 3 9 8 1
2 8 3 2 3 5 1 0 0 5
+ 4 3 9 8 1
6
2 8 3 2 3 5 1 0 0 5
+ 4 3 9 8 1
8 6
2 8 3 2 3 5 1 0 0 5
+ 4 3 9 8 1
9 8 6
2 8 3 2 3 5 1 0 0 5
+ 4 3 9 8 1
4 9 8 6
2 8 3 2 3 5 1 0 0 5
+ 4 3 9 8 1
9 4 9 8 6
2 8 3 2 3 5 1 0 0 5
+ 4 3 9 8 1
2 8 3 2 3 9 4 9 8 6
Le codage hexadcimal
Les codages hexadcimal, octal et DCB
Soustraction manuelle avec propagation de la retenue
ngative
Mme principe que la soustraction la main en base
10.
Retenue ngative cre lorsque la diffrence est infrieure
0
16
.
Exemple :
5
16
F
16
= 15
16
F
16
10
16
= 6
16
10
16
(retenue ngative)
16*16 cas de figure regroups dans le tableau de la
diapositive suivante.
Le codage hexadcimal
Les codages hexadcimal, octal et DCB
Table de soustraction
15
15
1C
1C
1B
1B
1A
1A
19
19
18
18
17
17
16
16
12
12
14
14
13
13 0
11
11
10
10
1F
1F
1E
1E
1D
1D
14 1B 1A 19 18 17 16 15 11 13 12 1 10 F 1E 1D 1C
13 1A 19 18 17 16 15 14 10 12 11 2 F E 1D 1C 1B
12 19 18 17 16 15 14 13 F 11 10 3 E D 1C 1B 1A
11 18 17 16 15 14 13 12 E 10 F 4 D C 1B 1A 19
10 17 16 15 14 13 12 11 D F E 5 C B 1A 19 18
F 16 15 14 13 12 11 10 C E D 6 B A 19 18 17
E 15 14 13 12 11 10 F B D C 7 A 9 18 17 16
D 14 13 12 11 10 F E A C B 8 9 8 17 16 15
C 13 12 11 10 F E D 9 B A 9 8 7 16 15 14
B 12 11 10 F E D C 8 A 9 A 7 6 15 14 13
A 11 10 F E D C B 7 9 8 B 6 5 14 13 12
9 10 F E D C B A 6 8 7 C 5 4 13 12 11
8 F E D C B A 9 5 7 6 D 4 3 12 11 10
7 E D C B A 9 8 4 6 5 E 3 2 11 10 F
6 D C B A 9 8 7 3 5 4 F 2 1 10 F E
[Title of the course] 31-Oct-11
Copyright 2004-2005 NameOfTheOrganization. All rights reserved. 17
Le codage hexadcimal
Les codages hexadcimal, octal et DCB
Exemple
Soustraire A8D2FE
16
ABCD1234
16
Soustraction hexadcimale Soustraction dcimale
A B C D 1 2 3 4
A 8 D 2 F E
2 8 8 2 3 4 3 4 7 6
1 1 0 6 4 0 6 2
-1
A B C D 1 2 3 14
A 8 D 2 F E
6
-1 -1
A B C D 1 2 13 14
A 8 D 2 F E
3 6
-1 -1 -1
A B C D 1 12 13 14
A 8 D 2 F E
F 3 6
-1 -1 -1 -1
A B C D 11 12 13 14
A 8 D 2 F E
3 F 3 6
-1 -1 -1 -1
A B C D 11 12 13 14
A 8 D 2 F E
4 3 F 3 6
-1 -1 -1 -1
A B C D 11 12 13 14
A 8 D 2 F E
A B 2 4 3 F 3 6
-1 -1
2 8 8 2 3 14 13 4 7 6
1 1 0 6 4 0 6 2
2 8 7 1 2 7 9 4 1 4
Le codage hexadcimal
Les codages hexadcimal, octal et DCB
La multiplication par une puissance de 16
Se traduit par un dcalage vers la gauche du nombre
multipli.
Nombre de crans correspondant la puissance de seize
de llment multiplicateur.
Supposons deux nombres A et B, tel que B=16
N
:
B scrit 1 suivi de N 0
A B scrit donc A suivi de N 0
Le codage hexadcimal
Les codages hexadcimal, octal et DCB
Exemple de multiplication par une puissance de 16
Soient A = B7AC025DE875AC7F
16
et B = 10000
16
.
Nous obtenons A B = B7AC025DE875AC7F0000
16
.
Si nous traduisons ces 3 nombres en base 10, nous avons :
A = 13234956007290285183
10
B = 65536
10
A B = 13234956007290285183
10
65536
10
= 867366076893776129753088
10
[Title of the course] 31-Oct-11
Copyright 2004-2005 NameOfTheOrganization. All rights reserved. 18
Le codage hexadcimal
Les codages hexadcimal, octal et DCB
Le principe de la multiplication de deux hexadcimaux
Nous ralisons dabord plusieurs multiplications
successives par des multiples de puissances de 16
croissantes (plusieurs dcalages) :
Nous nous proccupons dabord du rsultat de la
multiplication des deux chiffres hexadcimaux en
utilisant le tableau de la diapositive suivante ;
Nous ajoutons le nombre de zro correspondant la
puissance de 16 du multiplicateur.
Lorsque les multiplications sont calcule, nous effectuons
une addition des produits intermdiaires pour former le
rsultat final.
Le codage hexadcimal
Les codages hexadcimal, octal et DCB
Table de multiplication
5
0
C
0
B
0
A
0
9
0
8
0
7
0
6
0
2
0
4
0
3
0 0
1
0
0
0
F
0
E
0
D
0
5 C B A 9 8 7 6 2 4 3 1 1 0 F E D
A 18 16 14 12 10 E C 4 8 6 2 2 0 1E 1C 1A
F 24 21 1E 1B 18 15 12 6 C 9 3 3 0 2D 2A 27
14 30 2C 28 24 20 1C 18 8 10 C 4 4 0 3C 38 34
19 3C 37 32 2D 28 23 1E A 14 F 5 5 0 4B 46 41
1E 48 42 3C 36 30 2A 24 C 18 12 6 6 0 5A 54 4E
23 54 4D 46 3F 38 31 2A E 1C 15 7 7 0 69 62 5B
28 60 58 50 48 40 38 30 10 20 18 8 8 0 78 70 68
2D 6C 63 5A 51 48 3F 36 12 24 1B 9 9 0 87 7E 75
32 78 6E 64 5A 50 46 3C 14 28 1E A A 0 96 8C 82
37 84 79 6E 63 58 4D 42 16 2C 21 B B 0 A5 9A 8F
3C 90 84 78 6C 60 54 48 18 30 24 C C 0 B4 A8 9C
41 9C 8F 82 75 68 5B 4E 1A 34 27 D D 0 C3 B6 A9
46 A8 9A 8C 7E 70 62 54 1C 38 2A E E 0 D2 C4 B6
4B B4 A5 96 87 78 69 5A 1E 3C 2D F F 0 E1 D2 C3
Le codage hexadcimal
Les codages hexadcimal, octal et DCB
Exemple
Multiplier 123456
16
ABCD
16
Multiplication hexadcimale
1 2 3 4 5 6
A B C D
Multiplication dcimale
1 1 9 3 0 4 6
4 3 9 8 1
1 2 3 4 5 6
A B C D
4
E
1 2 3 4 5 6
A B C D
4 4
1 E
1 2 3 4 5 6
A B C D
4
5 E
1 2 3 4 5 6
A B C D
3 4
4 5 E
1 2 3 4 5 6
A B C D
3
8 5 E
1 2 3 4 5 6
A B C D
2 3
7 8 5 E
1 2 3 4 5 6
A B C D
2
A 8 5 E
1 2 3 4 5 6
A B C D
1 2
A A 8 5 E
1 2 3 4 5 6
A B C D
1
C A 8 5 E
1 2 3 4 5 6
A B C D
1
D C A 8 5 E
1 2 3 4 5 6
A B C D
E C A 8 5 E
1 2 3 4 5 6
A B C D
4
E C A 8 5 E
8 0
1 2 3 4 5 6
A B C D
3 4
E C A 8 5 E
C 8 0
1 2 3 4 5 6
A B C D
3
E C A 8 5 E
10 8 0
1 2 3 4 5 6
A B C D
4
E C A 8 5 E
0 8 0
1 2 3 4 5 6
A B C D
3 4
E C A 8 5 E
0 0 8 0
1 2 3 4 5 6
A B C D
3
E C A 8 5 E
4 0 8 0
1 2 3 4 5 6
A B C D
2 3
E C A 8 5 E
4 4 0 8 0
1 2 3 4 5 6
A B C D
2
E C A 8 5 E
7 4 0 8 0
1 2 3 4 5 6
A B C D
1 2
E C A 8 5 E
8 7 4 0 8 0
1 2 3 4 5 6
A B C D
1
E C A 8 5 E
A 7 4 0 8 0
1 2 3 4 5 6
A B C D
1
E C A 8 5 E
C A 7 4 0 8 0
1 2 3 4 5 6
A B C D
E C A 8 5 E
D A 7 4 0 8 0
1 2 3 4 5 6
A B C D
4
E C A 8 5 E
D A 7 4 0 8 0
2 0 0
1 2 3 4 5 6
A B C D
3 4
E C A 8 5 E
D A 7 4 0 8 0
7 2 0 0
1 2 3 4 5 6
A B C D
3
E C A 8 5 E
D A 7 4 0 8 0
B 2 0 0
1 2 3 4 5 6
A B C D
2 3
E C A 8 5 E
D A 7 4 0 8 0
C B 2 0 0
1 2 3 4 5 6
A B C D
2
E C A 8 5 E
D A 7 4 0 8 0
F B 2 0 0
1 2 3 4 5 6
A B C D
2 2
E C A 8 5 E
D A 7 4 0 8 0
1 F B 2 0 0
1 2 3 4 5 6
A B C D
2
E C A 8 5 E
D A 7 4 0 8 0
3 F B 2 0 0
1 2 3 4 5 6
A B C D
1 2
E C A 8 5 E
D A 7 4 0 8 0
6 3 F B 2 0 0
1 2 3 4 5 6
A B C D
1
E C A 8 5 E
D A 7 4 0 8 0
8 3 F B 2 0 0
1 2 3 4 5 6
A B C D
1
E C A 8 5 E
D A 7 4 0 8 0
B 8 3 F B 2 0 0
1 2 3 4 5 6
A B C D
E C A 8 5 E
D A 7 4 0 8 0
C 8 3 F B 2 0 0
1 2 3 4 5 6
A B C D
3
E C A 8 5 E
D A 7 4 0 8 0
C 8 3 F B 2 0 0
C 0 0 0
1 2 3 4 5 6
A B C D
3 3
E C A 8 5 E
D A 7 4 0 8 0
C 8 3 F B 2 0 0
2 C 0 0 0
1 2 3 4 5 6
A B C D
3
E C A 8 5 E
D A 7 4 0 8 0
C 8 3 F B 2 0 0
5 C 0 0 0
1 2 3 4 5 6
A B C D
2 3
E C A 8 5 E
D A 7 4 0 8 0
C 8 3 F B 2 0 0
8 5 C 0 0 0
1 2 3 4 5 6
A B C D
2
E C A 8 5 E
D A 7 4 0 8 0
C 8 3 F B 2 0 0
B 5 C 0 0 0
1 2 3 4 5 6
A B C D
1 2
E C A 8 5 E
D A 7 4 0 8 0
C 8 3 F B 2 0 0
E B 5 C 0 0 0
1 2 3 4 5 6
A B C D
1
E C A 8 5 E
D A 7 4 0 8 0
C 8 3 F B 2 0 0
10 B 5 C 0 0 0
1 2 3 4 5 6
A B C D
2
E C A 8 5 E
D A 7 4 0 8 0
C 8 3 F B 2 0 0
0 B 5 C 0 0 0
1 2 3 4 5 6
A B C D
1 2
E C A 8 5 E
D A 7 4 0 8 0
C 8 3 F B 2 0 0
4 0 B 5 C 0 0 0
1 2 3 4 5 6
A B C D
1
E C A 8 5 E
D A 7 4 0 8 0
C 8 3 F B 2 0 0
6 0 B 5 C 0 0 0
1 2 3 4 5 6
A B C D
1
E C A 8 5 E
D A 7 4 0 8 0
C 8 3 F B 2 0 0
A 6 0 B 5 C 0 0 0
1 2 3 4 5 6
A B C D
E C A 8 5 E
D A 7 4 0 8 0
C 8 3 F B 2 0 0
B 6 0 B 5 C 0 0 0
1 2 3 4 5 6
A B C D
E C A 8 5 E
D A 7 4 0 8 0
C 8 3 F B 2 0 0
+ B 6 0 B 5 C 0 0 0
1 2 3 4 5 6
A B C D
E C A 8 5 E
D A 7 4 0 8 0
C 8 3 F B 2 0 0
+ B 6 0 B 5 C 0 0 0
E
1 2 3 4 5 6
A B C D
E C A 8 5 E
D A 7 4 0 8 0
C 8 3 F B 2 0 0
+ B 6 0 B 5 C 0 0 0
D E
1 2 3 4 5 6
A B C D
E C A 8 5 E
D A 7 4 0 8 0
C 8 3 F B 2 0 0
+ B 6 0 B 5 C 0 0 0
A D E
1 2 3 4 5 6
A B C D
2
E C A 8 5 E
D A 7 4 0 8 0
C 8 3 F B 2 0 0
+ B 6 0 B 5 C 0 0 0
5 A D E
1 2 3 4 5 6
A B C D
2 2
E C A 8 5 E
D A 7 4 0 8 0
C 8 3 F B 2 0 0
+ B 6 0 B 5 C 0 0 0
9 5 A D E
1 2 3 4 5 6
A B C D
2 2 2
E C A 8 5 E
D A 7 4 0 8 0
C 8 3 F B 2 0 0
+ B 6 0 B 5 C 0 0 0
8 9 5 A D E
1 2 3 4 5 6
A B C D
1 2 2 2
E C A 8 5 E
D A 7 4 0 8 0
C 8 3 F B 2 0 0
+ B 6 0 B 5 C 0 0 0
7 8 9 5 A D E
1 2 3 4 5 6
A B C D
1 1 2 2 2
E C A 8 5 E
D A 7 4 0 8 0
C 8 3 F B 2 0 0
+ B 6 0 B 5 C 0 0 0
3 7 8 9 5 A D E
1 2 3 4 5 6
A B C D
1 1 2 2 2
E C A 8 5 E
D A 7 4 0 8 0
C 8 3 F B 2 0 0
+ B 6 0 B 5 C 0 0 0
C 3 7 8 9 5 A D E
1 1 9 3 0 4 6
4 3 9 8 1
1 1 9 3 0 4 6
1 1 9 3 0 4 6
4 3 9 8 1
1 1 9 3 0 4 6
9 5 4 4 3 6 8 0
1 1 9 3 0 4 6
4 3 9 8 1
1 1 9 3 0 4 6
9 5 4 4 3 6 8 0
1 0 7 3 7 4 1 4 0 0
1 1 9 3 0 4 6
4 3 9 8 1
1 1 9 3 0 4 6
9 5 4 4 3 6 8 0
1 0 7 3 7 4 1 4 0 0
3 5 7 9 1 3 8 0 0 0
1 1 9 3 0 4 6
4 3 9 8 1
1 1 9 3 0 4 6
9 5 4 4 3 6 8 0
1 0 7 3 7 4 1 4 0 0
3 5 7 9 1 3 8 0 0 0
4 7 7 2 1 8 4 0 0 0 0
1 1 9 3 0 4 6
4 3 9 8 1
1 1 9 3 0 4 6
9 5 4 4 3 6 8 0
1 0 7 3 7 4 1 4 0 0
3 5 7 9 1 3 8 0 0 0
+ 4 7 7 2 1 8 4 0 0 0 0
1 1 9 3 0 4 6
4 3 9 8 1
1 1 2 2 2 2 1 1 1
1 1 9 3 0 4 6
9 5 4 4 3 6 8 0
1 0 7 3 7 4 1 4 0 0
3 5 7 9 1 3 8 0 0 0
+ 4 7 7 2 1 8 4 0 0 0 0
5 2 4 7 1 3 5 6 1 2 6
[Title of the course] 31-Oct-11
Copyright 2004-2005 NameOfTheOrganization. All rights reserved. 19
Le codage hexadcimal
Les codages hexadcimal, octal et DCB
Le principe de la division de deux hexadcimaux
La division manuelle de deux hexadcimaux seffectue de la
mme manire que la division manuelle de deux dcimaux
ou de deux binaires
Cependant, la diffrence de la division binaire, il faudra
construire au pralable une table des multiples du diviseurs
afin de dterminer :
Quel chiffre Q, il convient dajouter au quotient
chaque tape de la division ;
Quel valeur V, il convient dutiliser pour effectuer la
soustraction intermdiaire.
Le codage hexadcimal
Les codages hexadcimal, octal et DCB
Le principe de la division de deux hexadcimaux
Pour dcrire le processus, nous supposons deux nombres
hexadcimaux A et B. Nous posons alors les notations
suivantes :
n
A
est la taille (en nombre de chiffres) du nombre A
n
B
est la taille (en nombre de chiffres) du nombre B
c
1
et c
2
sont des numros de chiffres (pour un
hexadcimal ayant une taille de N, les chiffres sont
numrots de 0 N-1, le chiffre 0 tant celui de poids
faible
A est un nombre hexadcimal form en prenant les
chiffres de A dont les numros sont compris entre c
1
et
c
2
Le codage hexadcimal
Les codages hexadcimal, octal et DCB
Le principe de la division de deux hexadcimaux (A/B)
Dbut
Fin
non
oui
Quotient =
c
1
-c
2
n
B
Construire A en
prenant les chiffres
numro c
1
c
2
A B
Consulter la table
pour trouver Q et V
Ajouter 0
quotient
c
1
= n
A
-1
c
2
= max (0, c
1
n
B
)
c
2
= c
2
-1
A = A V
oui
non
Ajouter Q au quotient
[Title of the course] 31-Oct-11
Copyright 2004-2005 NameOfTheOrganization. All rights reserved. 20
Division en hexadcimal
Les codages hexadcimal, octal et DCB
Exemple
Diviser C423DE7
16
par E23
16
Nous avons DDFE
16
= 56830
10
pour le quotient et 2D
16
= 45
10
pour le reste de la division.
Division hexdcimale Table de E23
E23 2 = 1C46 E23 9 = 7F3B
E23 3 = 2A69 E23 A = 8D5E
E23 4 = 388C E23 B = 9B81
E23 5 = 46AF E23 C = A9A4
E23 6 = 54D2 E23 D = B7C7
E23 7 = 62F5 E23 E = C5EA
E23 8 = 7118 E23 F = D40D
Division dcimale
205667815 361 9 C 4 2 3 D E 7 E 2 3 C 4 2 3 D E 7 E 2 3
0
C 4 2 3 D E 7 E 2 3
0 D
C 4 2 3 D E 7 E 2 3
- B 7 C 7 0 D
C 5 C
C 4 2 3 D E 7 E 2 3
- B 7 C 7 0 D
C 5 C D
C 4 2 3 D E 7 E 2 3
- B 7 C 7 0 D D
C 5 C D
- B 7 C 7
E 0 6
C 4 2 3 D E 7 E 2 3
- B 7 C 7 0 D D F
C 5 C D
- B 7 C 7
E 0 6 E
C 4 2 3 D E 7 E 2 3
- B 7 C 7 0 D D F
C 5 C D
- B 7 C 7
E 0 6 E
- D 4 0 D
C 6 1
C 4 2 3 D E 7 E 2 3
- B 7 C 7 0 D D F E
C 5 C D
- B 7 C 7
E 0 6 E
- D 4 0 D
C 6 1 7
C 4 2 3 D E 7 E 2 3
- B 7 C 7 0 D D F E
C 5 C D
- B 7 C 7
E 0 6 E
- D 4 0 D
C 6 1 7
- C 5 E A
2 D
C 4 2 3 D E 7 E 2 3
- B 7 C 7 0 D D F E
C 5 C D
- B 7 C 7
E 0 6 E
- D 4 0 D
C 6 1 7
- C 5 E A
2 D
205667815 361 9
0
205667815 361 9
- 18095 05
2471
205667815 361 9
- 18095 056
2471 7
- 2171 4
300 3
205667815 361 9
- 18095 056 8
2471 7
- 2171 4
30038
- 28952
1086
205667815 361 9
- 18095 0568 3
2471 7
- 2171 4
30038
- 28952
1086 1
- 1085 7
4
205667815 361 9
- 18095 0568 3 0
2471 7
- 2171 4
30038
- 28952
1086 1
- 1085 7
45
205667815 361 9
- 18095 0568 3 0
2471 7
- 2171 4
30038
- 28952
1086 1
- 1085 7
45
Le codage octal
Les codages hexadcimal, octal et DCB
Le principe
Utilise pour manipuler des nombres en base 8.
Nous disposons des chiffres 0, 1, 2, 3, 4, 5, 6 et 7.
Employ au dbut de l'informatique car les premires
machines travaillaient sur des mots qui avaient une
largeur de 12 bits.
Les oprations sur ce type de base suivent les principes
noncs prcdemment pour les binaires et les nombres
hexadcimaux.
Le codage octal
Les codages hexadcimal, octal et DCB
Table de correspondance du codage octal
0
1
2
00000
00001
00010
00
01
02
Dcimal Binaire Octal
3
4
5
00011
00100
00101
03
04
05
6
7
8
00110
00111
01000
06
07
10
9
10
01001
01010
11
12
11
12
13
01011
01100
01101
13
14
15
14
15
16
01110
01111
10000
16
17
20
[Title of the course] 31-Oct-11
Copyright 2004-2005 NameOfTheOrganization. All rights reserved. 21
Le codage DCB
Les codages hexadcimal, octal et DCB
Le principe
Le Dcimal Cod Binaire (BCD ou Binary Coded
Decimal) est un code de reprsentation des nombres dans
les systmes numriques.
Dans ce code, chaque chiffre de la reprsentation dcimale
est code sur un groupe de 4 bits :
avantage : affichage dcimal grandement facilit
inconvnient : des combinaisons de bits sont inutilises
Le codage DCB
Les codages hexadcimal, octal et DCB
Table de correspondance du DCB
0
1
2
0000
0001
0010
Dcimal DCB
3
4
5
0011
0100
0101
6
7
8
0110
0111
1000
9
10
1001
1010
11
12
13
1011
1100
1101
14
15
1110
1111
Combinaisons de bits
non-utilises dans le DCB
Le codage DCB
Les codages hexadcimal, octal et DCB
Exemple
Codage du nombre 1664
10
En binaire
En DCB
11
16
Taille
110 1000 0000
0001 0110 0110 0100
Valeur code
[Title of the course] 31-Oct-11
Copyright 2004-2005 NameOfTheOrganization. All rights reserved. 22
Pause-rflexion sur cette 2
me
partie
Avez-vous des questions ?
Les codages hexadcimal, octal et DCB
Le codage des rels
Le codage des informations
Plan de la partie
Les binaires virgule fixe.
Les binaires virgule flottante.
IEEE 754 Configurations
particulires.
IEEE 754 - Addition et soustraction.
IEEE 754 - Multiplication et division.
Voici les parties que nous allons aborder :
Le codage des rels
[Title of the course] 31-Oct-11
Copyright 2004-2005 NameOfTheOrganization. All rights reserved. 23
Les binaires virgule fixe
Le codage des rels
La premire faon de reprsenter les nombres rels
Les explications prcdentes restent valables.
Un nombre de bits fixs portent des puissances de deux
ngatives.
Si un nombre M scrit abc.de
2
, cela signifie que :
M = a 2
2
+ b 2
1
+ c 2
0
+ d 2
-1
+ e 2
-2
M = a 4 + b 2 + c 1 + d 0,5 + e 0,25
Les binaires virgule fixe
Le codage des rels
Exemple
Si N = 01011.011
2
, nous obtenons :
N = 2
3
+ 2
1
+ 2
0
+ 2
-2
+ 2
-3
N = 8 + 2 + 1 + 1/4 + 1/8
N = (64 + 16 + 8 + 2 + 1) / 8
N = 91/8
N = 11.375
10
Les binaires virgule fixe
Le codage des rels
Les limites de la mthode de codage
Ne permet pas de grer des grands nombres ou des petits
nombres simultanment.
Provoque des erreurs darrondis.
[Title of the course] 31-Oct-11
Copyright 2004-2005 NameOfTheOrganization. All rights reserved. 24
Les binaires virgule fixe
Le codage des rels
Les limites de la mthode de codage Exemple
Considrons deux binaires non signs, cods sur 8 bits
avec deux bits pour la partie dcimale :
11
10
= 001011.00
2
et 8
10
= 001000.00
2
Nous faisons 11/8 :
Nous aurions d obtenir 1.375
10
= 000001.011
2
Nous obtenons 1.25
10
= 000001.01
2
Nous avons supprim le dernier bit.
Les binaires virgule flottante
Le codage des rels
La notation scientifique en base 10
Permet de manipuler des grands
nombres et/ou des petits nombres
simultanment.
Sparation de la prcision
(mantisse) de lordre de grandeur
(exposant).
De la forme :
N = mantisse 10
exposant
Les binaires virgule flottante
Le codage des rels
La norme IEEE 754
La norme IEEE 754 publie en 1985.
3 modes de reprsentation des nombres binaires virgules
flottantes :
les nombres simple prcision cods sur 32 bits
les nombres double prcision cods sur 64 bits
les nombres prcision tendue cods sur 80 bits
[Title of the course] 31-Oct-11
Copyright 2004-2005 NameOfTheOrganization. All rights reserved. 25
Les binaires virgule flottante
Le codage des rels
La norme IEEE 754 Les 3 champs
Les nombres sont cods avec 3 champs :
un bit de signe (0 positif et 1 ngatif) ;
un champ exposant ;
un champ mantisse.
Simple prcision
Double prcision
Prcision tendue
1 bit
1 bit
1 bit
8 bits
11 bits
15 bits
23 bits
52 bits
64 bits
Signe Exposant Mantisse
Les binaires virgule flottante
Le codage des rels
La norme IEEE 754 Le champ exposant
Exposants positifs et exposants ngatifs.
Utilisation dun biais (qui permet davoir un champ
exposant toujours positif).
Codage de lexposant
Exposant rel + biais
Lecture de lexposant
Valeur du champ
exposant biais
Lecture du nombre
virgule flottante
Ecriture du nombre
virgule flottante
Les binaires virgule flottante
Le codage des rels
La norme IEEE 754 Le champ exposant Exemples
Codage de lexposant :
Lecture de lexposant
Simple prcision
Double prcision
Prcision tendue
0
-27
-500
127
1023
16383
Exposant rel Biais
127
996
15883
Valeur code
Simple prcision
Double prcision
Prcision tendue
0
-27
-500
127
1023
16383
Exposant rel Biais
127
996
15883
Valeur code
[Title of the course] 31-Oct-11
Copyright 2004-2005 NameOfTheOrganization. All rights reserved. 26
Les binaires virgule flottante
Le codage des rels
La norme IEEE 754 Le champ mantisse
La mantisse est normalise.
La partie entire ne contient quun chiffre diffrent de 0.
Assure lunicit de lcriture dun nombre par la notation
scientifique.
N = abcde000 10
-3
N = abcde00 10
-2
N = abcde0 10
-1
N = abcde 10
0
N = abcd.e 10
1
N = abc.de 10
2
N = ab.cde 10
3
N = a.bcde 10
4
N = 0.abcde 10
5
N = 0.0abcde 10
6
N = 0.00abcde 10
7
N = abcde0000 10
-4
Les binaires virgule flottante
Le codage des rels
La norme IEEE 754 Le champ mantisse Le bit cach
En base 2, le chiffre diffrent de 0 est 1.
Pas besoin de reprsenter la partie entire (bit cach).
Nous gagnons 1 bit pour la fraction (plus de prcision).
1.abcde 2
exp
signe abcde exp + biais
Les binaires virgule flottante
Le codage des rels
Conversion binaire IEEE 754 vers dcimal rel
Nous supposons un nombre binaire N, cod selon le
format IEEE 754
Le nombre N converti en base 10 est calcul par la
formule suivante :
signe exposant mantisse
( )
( )
biais exp
mantisse taille
1 i
i
i
signe
2 2 mantisse 1 1 N

=

|
|

\
|
+ =

[Title of the course] 31-Oct-11
Copyright 2004-2005 NameOfTheOrganization. All rights reserved. 27
Les binaires virgule flottante
Le codage des rels
Conversion binaire IEEE 754 vers dcimal rel Exemple
Soit N = 1 10000010 00110000000000000000000
2
N est cod en simple prcision donc
taille(mantisse) = 23
biais = 127
1 10000010 00110000000000000000000
-1 130 127 1 + 0.125 + 0.0625
N = -1.1875 2
3
= - 9.5
Les binaires virgule flottante
Le codage des rels
Conversion dcimal rel vers binaire IEEE 754
La conversion seffectue en trois tapes :
conversion du nombre rel crit en base 10, vers la
base 2 en utilisant une version modifie de
lalgorithme dcriture (le test darrt est N>0 et
non M0) ;
normalisation du nombre binaire obtenu ;
troncature ventuelle de la mantisse selon la
prcision choisie.
Peut conduire des valeurs approches qui entranent
de erreurs darrondis.
non
Les binaires virgule flottante
Le codage des rels
Conversion dcimal rel vers binaire IEEE 754
Dbut
End
N>0
non
Ajouter
1 B
B=
m=mMax
Ajouter
0 B
N = N 2
m
2
m
>N
m = m 1
oui
oui
Saisie de N
Afficher B
m!=0
Ajouter
. B
non
oui
[Title of the course] 31-Oct-11
Copyright 2004-2005 NameOfTheOrganization. All rights reserved. 28
Les binaires virgule flottante
Le codage des rels
Conversion dcimal rel vers binaire IEEE 754 Exemple
N = 54.265625
10
avec mMax=7
M
dpart
7
6
5
4
3
2
1
0
-1
-2
-3
-4
-5
-6
Test
2
7
=128 > 54.265625
2
6
=64 > 54.265625
2
5
=32 54.265625
2
4
=16 22.265625
2
3
=8 > 6.265625
2
2
=4 665625
2
1
=2 2.265625
2
0
=1 > 0.265625
2
-1
=0.5 > 0.265625
2
-2
=0.25 0.265625
2
-3
=0.125 > 0.015625
2
-4
=0.0625 > 0.015625
2
-5
=0.03125 > 0.015625
2
-6
=0.015625 0.015625
N
54.265625
54.265625
54.265625
22.265625=54.265625-32
6.265625=22.265625-16
6.265625
2.265625=6.265625-4
0.265625=2.265625-2
0.265625
0.265625
0.015625=0.265625-0.25
0.015625
0.015625
0.015625
0=0.015625-0.015625
B

0
00
001
0011
00110
001101
0011011
00110110.
00110110.0
00110110.01
00110110.010
00110110.0100
00110110.01000
00110110.010001
Les binaires virgule flottante
Le codage des rels
Conversion dcimal rel vers binaire IEEE 754 Exemple
N = 54.265625
10
est donc gal 110110.010001
2
Nous devons maintenant normaliser ce nombre, nous
obtenons N = 1.10110010001
2
2
5
10
Finalement, le codage de N selon le format IEEE 754 est :
Bit de signe 0 (le nombre est positif)
Champ exposant = 5
10
+ 127
10
soit 10000100
2
Champ mantisse = 10110010001000000000000
2
Nous obtenons 0 10000100 10110010001000000000000
2
Les binaires virgule flottante
Le codage des rels
Conversion dcimal rel vers binaire IEEE 754
Si le nombre rel est dj crit en notation scientifique
en base (de la forme mantisse 10
exposant
) utiliser une
procdure modifie
conversion de la mantisse crite en base 10, vers la
base 2 en utilisant la mme version modifie de
lalgorithme dcriture
conversion du nombre 10
n
en base 2
multiplier les deux nombres binaires obtenus
normalisation du rsultat
troncature ventuelle de la nouvelle mantisse selon
la prcision choisie
[Title of the course] 31-Oct-11
Copyright 2004-2005 NameOfTheOrganization. All rights reserved. 29
Les binaires virgule flottante
Le codage des rels
Conversion dcimal rel vers binaire IEEE 754
Comment passer de 10
n
10
m
2
2
e
10
Nous avons N = 10
n
10
= (8
10
+ 2
10
)
n
= (2
3
10
+ 2
1
10
)
n
Nous devons utiliser la formule du binme de
Newton, nous obtenons donc :
( )
2 b et 2 a
! p )! p n (
! n
C
avec b a C b a N
1 3
p
n
n
0 p
p p n p
n
n

= =

=
= + =

=

( ) ( )

=

=
+
=

= = =
n
0 p
p 2 n 3 p
n
n
0 p
p p n 3 p
n
n
0 p
p p n 3 p
n
2 C 2 C 2 2 C N
n 3
n
0 p
p 2 p
n
2 2 C N
|
|

\
|
=

=

Les binaires virgule flottante


Le codage des rels
Conversion dcimal rel vers binaire IEEE 754 Exemple
Nous considrons le nombre N = 7.33203125
10
10
3
10
Nous divisons ce nombre en deux parties :
N = 7.33203125
10
N = 10
3
10
Nous convertissons ces deux nombres en binaires.
Les binaires virgule flottante
Le codage des rels
Conversion dcimal rel vers binaire IEEE 754 Exemple
N = 7.33203125
10
(mme calcul que prcdemment)
M
dpart
3
2
1
0
-1
-2
-3
-4
-5
-6
-7
-8
Test
2
3
=8 > 7.33203125
2
2
=4 7.33203125
2
1
=2 3.33203125
2
0
=1 1.33203125
2
-1
=0.5 > 0.33203125
2
-2
=0.25 0.33203125
2
-3
=0.125 > 0.08203125
2
-4
=0.0625 0.08203125
2
-5
=0.03125 > 0.01953125
2
-6
=0.015625 0.01953125
2
-7
=0.0078125 et
0.0078125 > 0.00390625
2
-8
=0.00390625 et
0.00390625 0.00390625
N
7.33203125
7.33203125
3.33203125=7.33203125-4
1.33203125=3.33203125-2
0.33203125= 1.33203125-1
0.33203125
0.08203125=0.33203125-0.25
0.08203125
0.01953125=
0.08203125-0.0625
0.01953125
0.00390625=
0.01953125-0.015625
0.00039062
0= 0.0039062-0.00390625
B

0
01
011
0111.
0111.0
0111.01
0111.010
0111.0101
0111.01010
0111.010101
0111.0101010
0111.01010101
[Title of the course] 31-Oct-11
Copyright 2004-2005 NameOfTheOrganization. All rights reserved. 30
Les binaires virgule flottante
Le codage des rels
Conversion dcimal rel vers binaire IEEE 754 Exemple
N = 10
3
10
= (8
10
+ 2
10
)
3
= (2
3
10
+ 2
1
10
)
3
En utilisant la formule dtermine prcdemment :
N =
N = (1 2
-0
+ 3 2
-2
+ 3 2
-4
+ 1 2
-6
) 2
33
N = 2
9
+ 3 2
7
+ 3 2
5
+ 2
3
N = 2
9
+ 2 2
7
+ 2
7
+ 2 2
5
+ 2
5
+ 2
3
N = 2
9
+ 2
8
+ 2
7
+ 2
6
+ 2
5
+ 2
3
N = 1111101000
2
n 3
n
0 p
p 2 p
n
2 2 C
|
|

\
|

Les binaires virgule flottante


Le codage des rels
Conversion dcimal rel vers binaire IEEE 754 Exemple
N = 7.33203125
10
est donc gal 0111.01010101
2
N = 10
3
est gal 1111101000
2
Si nous effectuons la multiplication binaire, nous obtenons
N=1110010100100.00001000
2
=1.11001010010000001 2
12
Finalement, le codage de N selon le format IEEE 754 est :
Bit de signe 0 (le nombre est positif)
Champ exposant = 12 + 127 soit 10001011
Champ mantisse = 11001010010000001000000
Nous obtenons : 0 10001011 11001010010000001000000
2
IEEE 754 Configurations particulires
Le codage des rels
Le codage de linfini
Pour coder linfini, il faut remplir le champ exposant avec
des 1 et le champ mantisse avec des 0 :
moins linfini ( ) si le bit de signe est 1
plus linfini (+ ) si le bit de signe est 0
Simple prcision
Double prcision
Prcision tendue
1 11111111 00000000000000000000000
1 11111111111 00000000000000000000000 0000
1 111111111111111 00000000000000000000000 000000
Simple prcision
Double prcision
Prcision tendue
0 11111111 00000000000000000000000
0 11111111111 00000000000000000000000 0000
0 111111111111111 00000000000000000000000 000000
[Title of the course] 31-Oct-11
Copyright 2004-2005 NameOfTheOrganization. All rights reserved. 31
IEEE 754 Configurations particulires
Le codage des rels
Le codage du zro
La notation scientifique ne permet pas dcrire un vrai 0.
Pour coder le zro, il faut remplir le champ exposant avec
des 0 et le champ mantisse avec des 0 :
moins zro ( 0) si le bit de signe est 1
plus linfini (+ 0) si le bit de signe est 0
Simple prcision
Double prcision
Prcision tendue
1 00000000 00000000000000000000000
1 00000000000 00000000000000000000000 0000
1 000000000000000 00000000000000000000000 000000
Simple prcision
Double prcision
Prcision tendue
0 00000000 00000000000000000000000
0 00000000000 00000000000000000000000 0000
0 000000000000000 00000000000000000000000 000000
IEEE 754 Configurations particulires
Le codage des rels
Le codage de lindcision
Si une opration ne peut pas retourner un nombre dans R,
il faut retourner un code particulier
Ce code est appel NaN pour Not a Number
le bit de signe nest pas significatif (mais souvent 1)
tous les bits du champ exposant sont 1
le champ mantisse est diffrent de 0 (mais tous les bits
sont souvent 1)
Simple prcision
Double prcision
Prcision tendue
1 11111111 11111111111111111111111
1 11111111111 11111111111111111111111 1111
1 111111111111111 11111111111111111111111 111111