14
UNIVERSITE IBN TOFAIL Facult6 des Sciences Ddpartement de Mathdmatique Et d'Informatique *-f I F #.,lt,;'ii,;-ixi Filidre : SMI - Semestre 3 Module : Architecture des ordinateurs et Langage Assembleur Compldment du Cours Num firation et codage de I'information Auteur: Hatim KHARRAZ AROUSSI Annde Universitaire : 2012 / 2013

Numeration et codage_de_linfo

Embed Size (px)

Citation preview

Page 1: Numeration et codage_de_linfo

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

Page 2: Numeration et codage_de_linfo

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.

Page 3: Numeration et codage_de_linfo

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.

Page 4: Numeration et codage_de_linfo

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)

Page 5: Numeration et codage_de_linfo

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).

Page 6: Numeration et codage_de_linfo

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

Page 7: Numeration et codage_de_linfo

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

Page 8: Numeration et codage_de_linfo

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

Page 9: Numeration et codage_de_linfo

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)

Page 10: Numeration et codage_de_linfo

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

Page 11: Numeration et codage_de_linfo

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

Page 12: Numeration et codage_de_linfo

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).

Page 13: Numeration et codage_de_linfo

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.

Page 14: Numeration et codage_de_linfo

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

[email protected]

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.