Upload
yarsenv47
View
694
Download
0
Tags:
Embed Size (px)
Citation preview
UNIVERSITE IBN TOFAILFacult6 des SciencesDdpartement de MathdmatiqueEt d'Informatique
*-fIF#.,lt,;'ii,;-ixi
Filidre : SMI - Semestre 3
Module : Architecture des ordinateurs et LangageAssembleur
Compldment du Cours
Num firation et codage de I'information
Auteur: Hatim KHARRAZ AROUSSI
Annde Universitaire : 2012 / 2013
TABLE DES MATIERES
NUMERATION ET CODAGE DE L'INFORMATION ...."............2
1. Introduction............. """"""""2
2. Systime de numdration : Base 8...... """"22.1. D6finition. -------- 2
2.2. Exemples de bases de num6ration--------- ---------- 3
3. Transcodage ou changement de base......... """"""" 3
3.1. Changement de lJbase 10 vers une base B (B:2, 8, ou 16) -------------------------- 3
3.2. Changement de la base 2 vers une base B (B : 10, 8, ou 16) ------------- 4
4. Op6rations arithm6tique sur les nombres binaires """""""""' 6
5.
Architecture des ordinateurs Annde Universitaire 2012/2013
Numtirution et Coduge de l'informution
L. Introduction
Dans la vie courante, nous pratiquons la num6ration ddcimale. Les dix symboles (ou chiffres)
{0,1,2,3,4,5,6,'1,8,9} permettent de reprdsenter tous les nombres.
La position des chiffres est primordiale dans cette repr6sentation (num6ration de position) :
Ainsi, de droite d gauche on trouve : les Unit6s, Dizaines, Centaines, etc.
Ainsi, on peut 6crire le nombre 4134 comme :
4134 =4x 1000+1x100+3x10 + 4xl= 4x103 +1x102 +3x10+1x100
10 est appel6 BASE de cette num6ration. On parle ainsi, de la numdration d base l0 ou
numdration d,lcimale.
On peut gdndraliser cette d6finition d un systdme de numdration ir Base B.
2. Systdme de num6ration : Base B
2.1. Ddfinition
Un systdme de numdration d base B est un ensemble d6fini par un alphabet de B symboles :
S = {s6,s1,.....,rg-t}. Ainsi, chaque entier Npeut 6tre repr6sent6 sous cette base par :
N1r0) = (on-Fn-2...afl0)@) = lanqBn-| + an-2Bn-z + ...a181+ asB0)11s; Ou
. ai: valeur du f*" symbole du systdme d base B
a dn-t:le sYmbole de Poids fort
. aa:le symbole de poids faible
. n: nombre de symboles repr6sentant N
Par soucis de iisibilit6, pour chaque repr6sentation d'un nombre, nous devons spdcifier la base
de numdration.
Architecture des ordinateurs Ann6e Universitaire 2012/2013
1.
2.
J.
4.
2.2. Exemples de bases de num6ration
Systdme Binaire (B:2): Utilise deux symboles S:{0, 1}. C'est avec ce systdme que
fonctionnent les ordinateurs.S:tstdme Octale (B : 8) : Utilise huit symboles S:{0, 1,2, 3, 4, 5, 6,7}. Utilisd il y aun certain temps en Informatique. Il permet de coder 3 bits par un seul symbole.
SystDme Ddcimale (B : 10) : Utilise dix symboles S:{0, 1,2,3,4,5,6,7, 8, 9}. C'estnotre systdme de num6ration nous les humains. C'est un systdme de comptage d dixdoigt.Sltstdme Hexaddcimale (B:16):Utilise 16 symboles S:{0, 1,2,3,4,5,6,7,8,9,4: lOqroy, B - l1(ro), C: l26oy D: 131toy, E: l4goy lr: l5trol). Ce systdme est trds
utilis6 dans le monde de la micro Informatique. Il permet de coder 4 bits par un seul
symbole.
3. Transcodage ou changement de base
Le transcodage (ou changement de base) est I'op6ration qui permet de passer de larepr6sentation d'un nombre exprim6 dans une base d la repr6sentation du mOme nombre maisexprim6 dans une autre base. Par la suite, on verra les changements de bases suivants :
,/ Ddcimale vers : Binaire, Octale et Hexad6cimale.,/ Binaire vers : D6cimale, Octale et Hexaddcimale.
3.1. Changement de la base 10 vers une base B (B :218, ou 16)
La rdgle d suivre c'est la division euclidienne successive :
,/ On divise le nombre par la base B,/ Si le quotient non nul on le divise par lui aussi par B,./ Ainsi de suite, jusqu'd l'obtention d'un quotient nul,,/ La suite des restes correspond aux symboles de la base vis6e,/ On obtient en premier le symbole de poids faible et en demier le symbole de poids
fort.
Exemple: Ecrire la repr6sentation Binaire, Octale et Hexaddcimale de I'entier N = 751t0;
,/ Reprdsentation Binaire :
75
Ainsi, 75110) = 1001011(z)
Architecture des ordinateurs Annde (Jniversitaire 2012/2013
'/ Repr6sentation Octale :
7sl8zls l-g Ainsi,751r0) =1131s;
N1,/ Reprdsentation Hexad6cimale :
75
11 Ainsi, 75110) = 4866)
3.2. Changement de la base 2 vers une base B (B : 10, 8, ou 16)
Deux solutions sont propos6es :
Premidre solution:
,/ Convertir le nombre de la base binaire vers la base d6cimale,,/ Puis, convertir ce nombre de la base d6cimale vers la base B
Deuxiime solution:
,/ Binaire vers D6cimale : par d6finition.'/ Binaire vers Octale : Regroupement des bits en des sous ensemble de trois bits, puis
remplac6 chaque groupe par le symbole correspondant dans la base 8 (voir la table decorrespondance en dessous).
'/ Binaire vers Hexad6cimale : regroupement des bits en des sous ensemble de quatrebits, puis remplac6 chaque goupe par le symbole correspondant dans la base 16 (voirla table de correspondance en dessous).
Architecture des ordinateurs Annde Universitaire 2012/2013
Table de correspondance entre bases de num6ration
Exemple: Ecrire la repr6sentation Ddcimale, Octale et Hexad6cimale d'un nombre reprdsent6en Binaire par N :101001110112;
'/ Reprdsentation D6cimale :
N : lx2e + 0x28 + Ix27 + 0x26 + 0x2s + Ix2a + lx23 + lx22 + 0x2r + lx20
=512 +0 +128+0 +0 +16+8 + 4 + 0+1:6691r0y
Ainsi, 1001001110112; = 669110)
r' Reprdsentation Octale :
N = 1010011101py
:001 010 011 10112y
:1 2 3 51r;
Ainsi, 101001 1 10lp; : 12351ry
Binaire D6cimale Octale Hexad6cimale0 0 0 0
I 1 I 1
10 2 2 2
11 J a-)
a-)
100 4 4 4
101 5 5 5
110 6 6 6
111 7 7 7
1000 8 t0 8
1001 9 11 9
1010 10 t2 A1011 11 13 B1 100 I2 t4 C
1101 13 t5 D1110 14 16 E1111 15 I7 F
Architecture des ordinateurs Annde Universitaire 2012/2013
,/ Repr6sentation Hexaddcimale :
N:1010011101p;
:0010 1001 110112;
2 9 Dtrot
Ainsi, 101001 1 101py : 29Doat
4. OprSrations arithm6tique sur les nombres binaires
Les opdrations arithm6tique sont simples en binaire, nous avons les r6sumdes dans le tableausuivant (a,b e {0, t}; :
Exemple:
'/ Addition binaire :
100101 l0+
01010101
: 11101011
,/ Soustraction binaire :
- 10010110
01010101
Table de I'addition Table de la soustraction Table de la multinlicationa b a+b a b a-b a b axb0 0 0 0 0 0 0 0 0
I 0 1 I 0 0 I 0 0
0 I I 0 I I Ret -1 0 1 0
I 1 0 Ret. 1 1 1 0 I I I
= 01000001
Architecture des ordinateurs Annde (Jniversitaire 2012/2013
,/ Multiplication binaire :
1011X
1010
0000101 1.
0000.1011 .
: 1101110
5. Codage de ltinformation et ltordinateur
L'ordinateur ne peut pas tout comprendre. Il faut coder les informations dans un langagecompr6hensif par I'ordinateur. De par sa conception 6lectronique et 6lectrique, le codagebinaire (Repr6sentation binaire) a dt6 choisi. Le courant passe dans un fiI, on dit qu'il est dl'6tat l, il ne passe pas, il est d 1'6tat 0. Ce qui correspond d la numdration d base 2, connu sousle nom du systdme binaire. Ces informations cod6es seront stockdes dans les structuresdl6mentaires suivantes
'/ Bit (binary digit) : est I'unit6 6l6mentaire de reprdsentation des deux chiffres 0 et 1. SiI'on d6sire reprdsenter des nombres differents de 0 ou 1, on utilisera donc plusieursbits c6te d c6te.
'/ Octet (Byte): Un groupe de bits constitue un multiplet (byte). Bien qu'il y ait desmachines qui travaillent ou qui codent I'information sur des multiplets de 6, 12 oum6me 24bits,le plus courant est le "byte" de 8 bits ou Octet.
'/ Mots : Les mots sont gdn6ralement des ensembles d'octets qui sont transfdr6ssimultandment d'une partie de la machine d I'autre et qui sont traitds en m6me tempsdans les op6rations num6riques. On rencontre des machines travaillant avec des motsde 1 octet,2 octets (16 bits),4 octets (32 bits), 8 octets (64 bits), etc.
5.1. Codage binaire des entiers positifs (binaire pure)
Un nombre entier positif est cod6 en binaire sur un nombre de bits fixes. Sur n bits nous
pouvons repr6senter en binaire des nombres de 0 d 2n -l .
Exemple:
Sur 1 octet (8 bits) : Codage des nombres de 0 d 28 -l = 255
Sur 2 octets (16 bits) : Codage des nombres de 0 d 216 -1 : 65535
Sur 4 octets (32 bits) : Codage des nombres de 0 d 232 -I = 4294967295
Architecture des ordinateurs Annde Universitaire 2012/2013
5.2. Codage binaire des entiers sign6s (binaire sign6)
Ce codage permet la repr6sentation des entiers positifs et n6gatifs. Par convention, le bit de
poids fort est utilis6 pour repr6senter le signe du nombre.
Soit N = bn-tbn-z.....4boun nombre cod6 en binaire sign6. Ainsi :
'/ Si br-1 = 0 le nombre est positif
'/ Si btx-l = 1 l? nombre est n6gatif
Les bits bo d bn-z repr6sente la valeur absolue du nombre
Exemple : +15110; : 0000111112;
- 15(ro) = 10001 lIlPT
Avec nbits, on code tous les nombres entre - (2*t-l) et (2"-r-I)
Sur un octet les nombres cod6s sont de -727 et +127
Inconvdnient: avec ce codage ona2 reprdsentations pour le 0
Sur un octet : - 0(r0) : t0000000(z) et + 01ro) : 00000000(z)
5.3. Codage binaire des entiers sign6s en compl6ment i 1
Dans ce codage les nombres positifs sont reprdsent6s de la m6me fagon que dans le codagebinaire pur, mais les nombres ndgatifs sont cod6s de la manidre suivante: en prenant lecodage correspondant, au m6me nombre en binaire pur, et on fait le compl6ment par rapport d1
Exemple: codage de -15 en compl6ment d 1
+ 151r0) = 00001111i2; comptdment dr ,1111000012, = -151r0)
Inconvdnient: de m0me avec ce codage ona2 repr6sentations pour le 0 :
Surunoctet: -0(r0) =1111111112y et +0110) =00000000(z)
Architecture des ordinateurs Ann6e (Jniversitaire 20i 2/201 3
5.4. Codage binaire des entiers signds en compl6m ent d 2
Les nombres positifs sont cod6s de la m6me manidre que dans le binaire pur. Le codage desnombres n6gatifs s'obtient en ajoutant 1 au compl6ment d 1 des nombres cod6s.
Exemple : codage de -15 en compldment d2
+ i51ro) = 0000111112; compt<iment dt ,11110000i2 [email protected], = -15110)
Remarque: pour ce codage on a qu'une seule repr6sentation pour le 0 :
sur un octet : - olto) com?ldmentitl aioutert ,00000000(zy = +0110;
Avec n bits on peut coder entre -2"-1 et +2"-r-L Ainsi, sur un octet, on code les nombres entre
-128 et 127.
5.5. Codage binaire des nombres r6els format virgule fixe
Cettd reprdsentation permet le codage d la fois des entiers positifs, n6gatifs et rdels. Sonprincipal avantage est sa grande capacite de codage.
La rdgle d suivre pour coder en virgule fixe un nombre r6el est la suivante :
1. Coder en binaire la partie entidre par divisions successives par 22. Coder en binaire la partie fractionnelle par multiplications successives par 2 et on
garde d chaque 6tape le symbole qui sort avant la virgule. La suite de ces symboles 0ou 1 donne la partie d6cimale en base 2.
Gdn6ralement un binaire en format virgule fixe s'6crit sous la forme :
nN(Z) : onan-t.....a1ag,aqa-2...a-p
r?_*t'
Exemple : 54,250sy: ?ey
Codage de la partie entidre :
541roy : 11011012; Par divisions successives par 2
Codage de la partie fractionnelle :
0,25 x 2 = 0,5110; t a-t = 0 Le symbole de poids 2-1
0,50 x 2: 1,001r0y ) o-z = 1 Le symbole de poids 2-2
Architecture des ordinateurs Annde Universitaire 2012/2013
5.6. Codage binaire des nombres r6els format virgule flottante
Tout nombre r6el peut Otre mis en format virgule flottante sous la forme : N = fuI x BE ,
avec:
,/ M est la mantisse,./ B est la base B : {2,8, 10, 16, . .. },,/ E est l'exposant (sign6).
Exemple:
Codage binaire en format virgule flottante du nombre d6cimale 3,25goy
3,25g01: 11,0112; en format virgule fixe
: 1,10112121 en format virgule flottante avec M:1,101 et E: 1
: 710,1p12-1 en format virgule flottante avec M:110,1 et E: -I
On distingue differente manidre de coder M et E, ainsi, on a besoin d'une normalisation.
5.7. Repr6sentation binaire des nombres r6els Norme IEEE 754 t
Simple Pr6cision
La forme g6n6rale d'un nombre rdel selon la noffne IEEE 754 est:
lr = (-tF'" 2E xt,M
Un nombre normalis6 se caractdrise par une mantisse dont le premier bit est toujours egal d l,ce bit est inutile et alors supprimd. Dans la repr6sentation en virgule flottante en simplepr6cision on utilise 4 octets (32 bits). Ces bits contiennent de gauche d droite :
'/ 1 bit de signe de la mantisse (SM: SMvaut 0 pour un nombre positif et 1 pour n6gatif,/ 8 bits pour I'exposant E : on reprdsente en binaire pur E+I27 .
,/ 23 bits pour la mantisse M
Les bits d'un rdel sous la norme IEEE 754en simple prdcision
1 bit
Exemple:
8 bits
23 22
23 bits
h
Architecture des ordinateurs Annde Universitaire 2012/2a13
Reprdsenter le ddcimale suivant 10,50110; en binaire format virgule flottante suivant lanoffne IEEE 754 en simple pr6cision.
10,501t0; = 1010,112; En respectant la rdgle du codage en binaire format virgule fixe
Ainsi : 10,501s0y : (-1)0 *23 x1,010112y En respectant la norme IEEE754
D'oir le codage binaire en format virgule flottante simple prdcision est donnd par :
10,50110; = 0 0000001 1 0i010000000000000000000c)
5.8. Repr6sentation binaire des nombres r6els Norme IEtrE 754 z
Double Pr6cision
Dans la repr6sentation en virgule flottante en double pr6cision on utilise 8 octets (64 bits). Cesbits contiennent de gauche i droite :
'/ 1 bit de signe de la mantisse (SM : SMvaut 0 pour un nombre positif et 1 pour ndgatif,/ I 1 bits pour I'exposant E : on repr6sente en binaire pur E+I024,/ 52 bits pour la mantisse M
Les bits d'un rdel sous lu norme IEEE 754en double prdcision
52 51
l bit 1l bits
0
5.9. Codage des caractires
La mdmoire de I'ordinateur conserve toutesde mdthode pour stocker directement les6qr.rivalent en code num6rique: c'est le codeInterchange).
les donn6es sous forme num6rique. Il n'existe pascaractdres. Chaque caractdre possdde donc sonASCII (American Standard Code for Information
Plusieurs norrnes sont distingu6es pour le codage des caractdres :
5.9.1. Code ASCII
Le code ASCII de base repr6sentait les caractdres sur 7 bits (c'est-d-dir e 128 caractdres
possibles, de 0 b127).
4rchitecture des ordinateurs Annde (Jniversitaire 2012/2013
Les codes 0 A 31 ne sont pas des caractdres. On les appelle caractdres de contr6le carils permettent de faire des actions telles que:
o retour d la ligne (CR)o Taabulation horizontale (TAB)
Les codes 65 e 90 reprdsentent les majusculesLes codes 97 iL I22 reprdsentent les minuscules
Table des caractires ASCII
i,q.scrrI
i0.j riz1tI
4)67
8
910
1lt213
t415
l6t7l819
202l22z3242526272829303t
t"tt*I
I NUL
lsoH] STXi ETX
lASCIIlaq
6566
67
68697A
71
72IJ747576777879808l8283
848586
8788
899091
9293
9495
iLettrel@
ABC
DEFGHIJ
KLMNoP
aRS
TUVwXYZ
t
l
iASCrriqo1stiss.ssi -':^
100
101
102103t0410s106107108109
u0lllt12ll3114115116
tt7118t19120L2tr22123
t24
|ASCII Ftt*'; 32 ,spu.t
JJ
3435363738394041
42434445464748495051
5253
545556
57
58
59606l6263
["tt..IIialr.i"ic,dIle1r
EOTENQACKBELBS
TABLFVTFFCRSOSI
DLEDCIDC2DC3DC4NAKSYNETBCANEMSUBEscFS
GSRSUS
t2s126r23
obhijkI
mnopqrS
tu
wX
z
oit
#
$
%
*(
)*
+
/0I2J
45
6,7
8
9:
,
,|
5.9.2. Code ASCII 6tendu
Le code ASCII a 6td mis au point pour la langue anglaise, il ne contient donc pas de caractdresaccentu6s, ni de caractdres sp6cifiques ir une langue. Pour coder ce type de caractdre il fautrecourir i un autre code. Le code ASCII a donc 6t6 dtendu A 8 bits (un octet) pour pouvoircoder plus de caractdres (on parle d'ailleurs de code ASCII €tendu...). Ce code attribue lesvaleurs 0 it 255 aux lettres majuscules et minuscules, aux chiffres, aux marques deponctuation et aux caractdres accentu6s.
Architecture des ordinateurs Annde (Jniversitaire 2012/2013
Table des caractires ASCII dtendu
iescirii"ii'.I o !m;r
qii
uii
i
lr,ett1,ldi;l^i"i+1rjti!II
io{-
o
*2
3
F
1
I
t
))
%'/2
%I
vz
Lettre@ABcDEFGHIJ
KLMNoP
aRS
TUVwXYZ
I2J
45
67
8
910
ltt2l3t4l516t71819
202t2223
2425
262128293031
SOHSTXETXEOTENQACKBELBS
TABLFVTFFCRSO
SIDLEDCIDC2DC3DC4
SYNETBCANEMSUBEscFSGSRSUS
NAK
eei100 |
101 t
r02 I
r03 1
to4 I
105 i
106 i
107 i
108109
110
111
lt2113
tt4115
116117l t8119
120121122t23124125
126l2'l
cde
fobhijkI
mnopqrS
tuvwx
DEL
l3l132133134135
136137r38139r40141t42143144145146147148149150
151
r52153154155156r57158159
19319419s1961911981992002012022032042052062072482092t02112122132142152162172t8219220221222223
Lettre
iI
3
!
(-t
I
I
U
&ec/j
))
',A
X
.tt.
,i
g
.id
]ASCII22422522622722822923023123223323423523623723823924024124224324424524624',1
248249250251252253254255
ASCiild;;. leScii i32 lSpace I 64 i
33 i t 1es It1r34l")66i
lasdiiir"iii" irSclii'te6 I irzs i
ie7 | a t2e i1981b1130i
L;iii;; iAseii€ 1160? ltot, lrczf lt63,, lt 164
i 165
t lioo7 irct^ jros
o/oo i 169d irto< irzrcE inzG 1173i inq3 itzs.3 i 176' il77, ltzg* lns" I190' 1 tgt
I razI rs:.s lrurM j tgS
3 ltso> jrszce I 188
I l8e
I 1e0
u ll91
' _ !-" "- "
!ASCIIrei D2Lettre
d
Jo
tU
33 i ! 16s i
34 I " 1aa i
3s i+ is i36.j$i68137lNi6el38'r &',7O i
39 i' |71 i
40 1 r lrr l4t I ) ,7342; * 17443i+)75
44 1 7645
46tllt
o
9d
e
e
etc
47 I, I '1948080
ii49t1.1 81
50 iz lu5l i 3 i 83
52i4 i8453 I 5 r85
l:54!6 j86
ti5517i87s6 i s lsssiiqlas58 l, lsosg r lsr601<926r i : I q:62 It tSq63 i ?
"gs
5.9.3. Code Unicode
Le code Unicode est un systdme de codage des caractdres sur 16 bits mis au point en 1991. Lesystdme Unicode permet de reprdsenter n'importe quel caractdre par un code sur 16 bits,inddpendamment de tout systdme d'exploitation ou langage de programmation.
Il regroupe ainsi la quasi-totalitd des alphabets existants (arabe, armdnien, cyrillique, grec,h6breu, latin, ...) et est compatible avec le code ASCII.
L'ensemble des codes Unicode est disponible sur le site http://www.unicode.orglcl'.arrtsl.