codage de l’information 10/10/2012 y.elmarzak 1 cpge pcsi dakhla

31
Codage de l’information 10/10/2012 Y.ELMARZAK 1 CPGE PCSI DAKHLA

Upload: alaire-romero

Post on 04-Apr-2015

112 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Codage de l’information 10/10/2012 Y.ELMARZAK 1 CPGE PCSI DAKHLA

1

Codage de l’information

10/10/2012 Y.ELMARZAK

CPGE PCSI DAKHLA

Page 2: Codage de l’information 10/10/2012 Y.ELMARZAK 1 CPGE PCSI DAKHLA

Y.ELMARZAK 2

001101101

Information numérique = information binaire

= 1 bit Représentée par 2 niveaux de tension

Codée par « 0 » logique ou « 1 » logique

Différents codages pour représenter une information (binaire naturel, complément à 2, BCD, etc…)

10/10/2012

Page 3: Codage de l’information 10/10/2012 Y.ELMARZAK 1 CPGE PCSI DAKHLA

Y.ELMARZAK 3

Base 10 – Décimal 10 symboles [ 0 1 2 3 4 5 6 7 8 9 ]

Base 2 – Binaire 2 symboles [ 0 1 ]

Base 8 – Octal 8 symboles [ 0 1 2 3 4 5 6 7 ]

Base 16 – Hexadécimal 16 symboles [ 0 1 2 3 4 5 6 7 8 9 A B C D E

F ]

10/10/2012

Page 4: Codage de l’information 10/10/2012 Y.ELMARZAK 1 CPGE PCSI DAKHLA

Y.ELMARZAK 4

Conversion Binaire → Décimal

On additionne les poids associés à chaque symbole

Exemple : ( 1 1 0 0 1 )2

24 23 22 21 20

16 8 4 2 1

= 1+ 8 + 16 = (25)10

I.2 Représentation de l’information

10/10/2012

Page 5: Codage de l’information 10/10/2012 Y.ELMARZAK 1 CPGE PCSI DAKHLA

Y.ELMARZAK 5

Conversion Décimal → Binaire

On effectue des divisions successives par 2

Exemple : 55 2

1 27

1 13

1 6

0 3

1 1

2

2

2

2

(55)10 = (110111)2

1 < 2 donc on arrête

10/10/2012

Page 6: Codage de l’information 10/10/2012 Y.ELMARZAK 1 CPGE PCSI DAKHLA

Y.ELMARZAK 6

Conversion Hexadécimal → Décimal

On additionne les poids associés à chaque symbole

Exemple : ( B 2 2 )16

162 161 160

256 16 1

= Bx256 + 2x16 + 2x1= 11x256 + 32 + 2

= (2850)10

Conversion Décimal → Hexadécimal

On effectue des divisions successives par 16

10/10/2012

Page 7: Codage de l’information 10/10/2012 Y.ELMARZAK 1 CPGE PCSI DAKHLA

Y.ELMARZAK 7

Exemple : (7172)10 en hexadécimal 7172 / 16 = 448 reste 4 448 / 16 = 28 reste 0 28 / 16 = 1 reste 12 = C 1 < 16 donc on arrête

Résultat : (1C04)16

Conversion Décimal → Hexadécimal

On effectue des divisions successives par 16

10/10/2012

Page 8: Codage de l’information 10/10/2012 Y.ELMARZAK 1 CPGE PCSI DAKHLA

Y.ELMARZAK 8

Conversion du binaire à l'octal/hexadécimal ouInverse

1 chiffre octal = un groupe de 3 chiffres binaires 1 chiffre hexadécimal = un groupe de 4 chiffres binaires

(000)2 = 0, (001)2 = 1.... (110)2 = 6, (111)2 = 7Avec 3 bits on code les 8 chiffres de la base octale (0000)2 = 0, (0001)2 = 1 .... (1110)2 = 14 = (E)16,(1111)2 = 15 = (F)16Avec 4 bits, on code les 16 chiffres de la base hexadécimale

Cas particuliers

10/10/2012

Page 9: Codage de l’information 10/10/2012 Y.ELMARZAK 1 CPGE PCSI DAKHLA

Y.ELMARZAK 9

Exemple : (10110001101)2 en octal On regroupe par groupes de 3 bits :010 110 001 101 On rajoute des zéros au début au besoin (010)2 = 2, (110)2 = 6, (001)2 = 1, (101)2= 5 (10110001101)2 = (2615)8

10/10/2012

Page 10: Codage de l’information 10/10/2012 Y.ELMARZAK 1 CPGE PCSI DAKHLA

Y.ELMARZAK 10

Exemple : (10110001101)2 en hexadécimal On regroupe par groupes de 4 bits :0011 1000 1101

(0011)2 = 5 , (1000)2 = 8, (1101)2 = 13 (10110001101)2 = (58D)16

10/10/2012

Page 11: Codage de l’information 10/10/2012 Y.ELMARZAK 1 CPGE PCSI DAKHLA

Y.ELMARZAK 11

Exemple : (254)8 en binaire 2 = (010)2, 5 = (101)2, 4 = (100)2 On concatène dans l'autre base ces groupes de 3 bits :(254)8 = (10101100)2 Exemple : (D46C)16 en binaire D = 13 = (1101)2, 4 = (0100)2, 6 = (0110)2,C = 12 = (1100)2 On concatène dans l'autre base ces groupes de 4 bits :(D46C)16 = (1101010001101100)2

10/10/2012

Page 12: Codage de l’information 10/10/2012 Y.ELMARZAK 1 CPGE PCSI DAKHLA

Y.ELMARZAK 12

Les informations directement traitées par un ordinateurs sont :des données :

entiers : naturels et relatifs flottants : nombres réels caractères

des instructions : leur codage est spécifique à un processeur

10/10/2012

Page 13: Codage de l’information 10/10/2012 Y.ELMARZAK 1 CPGE PCSI DAKHLA

Y.ELMARZAK 13

On a vu le codage des nombres entiers positifsdans différentes bases Mais on doit aussi pouvoir manipuler des Nombres réels Nombres négatifs

Codage des nombres

10/10/2012

Page 14: Codage de l’information 10/10/2012 Y.ELMARZAK 1 CPGE PCSI DAKHLA

Y.ELMARZAK 14

Conversion réel base B en décimal

Exemples :123,45 = 1 x 102 + 2 x 101 + 3 x 100 + 4 x 10-1 + 5 x 10-2

(101,101)2 = 1 x 22 + 0 x 21 + 1 x 20 + 1 x 2-1

+ 0 x 2-2 + 1 x 2-3

= 4 + 1 + 0,5 + 0,125 = 5,625 (AB,4E)16 = 10 x 161 + 11 x 160 + 4 x 16-1 + 14 x 16-2

= 160 + 11 + 4 x 0,0625 + 14 x 0,00390625= 171,3046875

10/10/2012

Page 15: Codage de l’information 10/10/2012 Y.ELMARZAK 1 CPGE PCSI DAKHLA

Y.ELMARZAK 15

Conversion d'un nombre décimal réel en base B Pour la partie entière Utiliser la méthode de la division entière comme pour les entiers Pour la partie fractionnaire Multiplier la partie fractionnaire par B Noter la partie entière obtenue Recommencer cette opération avec la partie fractionnaire durésultat et ainsi de suite Arrêter quand la partie fractionnaire est nulle Ou quand la précision souhaitée est atteinte Car on ne peut pas toujours obtenir une conversion en un nombre fini de chiffres pour la partie fractionnaire La partie fractionnaire dans la base B est la concaténation desparties entières obtenues dans l'ordre de leur calcul

10/10/2012

Page 16: Codage de l’information 10/10/2012 Y.ELMARZAK 1 CPGE PCSI DAKHLA

Y.ELMARZAK 16

Exemple : conversion de 12,6875 en binaireConversion de 12 : donne (1100)2 Conversion de 0,6875 0,6875 x 2 = 1,375 = 1 + 0,3750,375 x 2 = 0,75 = 0 + 0,750,75 x 2 = 1,5 = 1 + 0,50,5 x 2 = 1 = 1 + 0 (12,6875)10 = (1100,1011)2 Exemple : conversion de 171,3046875 en hexadécimal Conversion de 171 : donne (AB)16 Conversion de 0,30468750,3046875 x 16 = 4,875 = 4 + 0,8750,875 x 16 = 14,0 = 14 + 0 (171,3046875)10 = (AB,4E)16

10/10/2012

Page 17: Codage de l’information 10/10/2012 Y.ELMARZAK 1 CPGE PCSI DAKHLA

Y.ELMARZAK 1710/10/2012

Représentation des nombres entiers Il existe deux types d’entiers : les entiers non signés ( positifs ) et les entiers signés ( positifs ou négatifs )Problème : Comment indiquer à la machine qu’un nombre est négatif ou positif ? Il existe 3 méthodes pour représenter les nombres négatifs :Signe/ valeur absolue Complément à 1Complément à 2

Page 18: Codage de l’information 10/10/2012 Y.ELMARZAK 1 CPGE PCSI DAKHLA

Y.ELMARZAK 1810/10/2012

Représentation signe / valeur absolue ( S/VA )

Si on travail sur n bits , alors le bit du poids fort est utilisé pour indiquer le signe :

1 : signe négatif0 : signe positif Les autres bits ( n -1 ) désignent la valeur absolue du

nombre. Exemple : Si on travail sur 4 bits.

1 001

Signe Valeur absolue

1001 est la représentation de - 1

0 001

Signe Valeur absolue

0001 est la représentation de + 1

Page 19: Codage de l’information 10/10/2012 Y.ELMARZAK 1 CPGE PCSI DAKHLA

Y.ELMARZAK 1910/10/2012

valeur VA signe

+ 0+ 1+ 2+ 3

00011011

0000

- 0- 1- 2- 3

00011011

111 1

• Les valeurs sont comprises entre -3 et +3

-3 ≤ N ≤ +3- ( 4-1 ) ≤ N ≤ + (4 -1 )-(22 -1) ≤ N ≤ +(22-1 )-(2 (3 -1) -1) ≤ N ≤ +(2 (3 -1) -1 )

Sur 3 bits on obtient :

Si on travail sur n bits , l’intervalle des valeurs qu’on peut représenter en S/VA :

-(2 (n -1) -1) ≤ N ≤ +(2 (n -1) -1 )

Page 20: Codage de l’information 10/10/2012 Y.ELMARZAK 1 CPGE PCSI DAKHLA

Y.ELMARZAK 2010/10/2012

Avantages et inconvénients de la représentation signe/valeur absolue

• C’est une représentation assez simple .• On remarque que le zéro possède deux représentations +0

et -0 ce qui conduit à des difficultés au niveau des opérations arithmétiques.

• Pour les opérations arithmétiques il nous faut deux circuits : l’un pour l’addition et le deuxième pour la soustraction .

L’idéal est d’utiliser un seul circuit pour faire les deux opérations, puisque a- b =a + ( -b )

Page 21: Codage de l’information 10/10/2012 Y.ELMARZAK 1 CPGE PCSI DAKHLA

Y.ELMARZAK 2110/10/2012

Représentation en complément à 1

• Pour trouver le complément à un d’un nombre, il suffit d’inverser tous les bits de ce nombre : si le bit est un 0 mettre à sa place un 1 et si c’est un 1 mettre à sa place un 0

• Exemple :

1 0 1 0

0 1 0 1

0 1 0 1 0

1 0 1 0 1

Sur 4 Bits Sur 5 Bits

Page 22: Codage de l’information 10/10/2012 Y.ELMARZAK 1 CPGE PCSI DAKHLA

Y.ELMARZAK 2210/10/2012

Dans cette représentation , le bit du poids fort nous indique le signe ( 0 : positif , 1 : négatif ).

Le complément à un du complément à un d’un nombre est égale au nombre lui même .

CA1(CA1(N))= N Exemple : Quelle est la valeur décimale représentée par la valeur

101010 en complément à 1 sur 6 bits ? Le bit poids fort indique qu'il s'agit d'un nombre négatif. Valeur = - CA1(101010) = - (010101)2= - ( 21)10

Représentation en complément à 1

Page 23: Codage de l’information 10/10/2012 Y.ELMARZAK 1 CPGE PCSI DAKHLA

Y.ELMARZAK 2310/10/2012

Valeurdécimal

Valeur en binaire

Valeur en CA1

+ 0+ 1+ 2+ 3

000001010011

000001010011

- 3- 2- 1- 0

- 011- 010- 001- 000

100101110111

•On remarque que dans cette représentation le zéro possède aussi une

double représentation ( +0 et – 0 ) .

Si on travail sur 3 bits :

•Dans cette représentation , le bit du poids fort nous indique le signe .

Page 24: Codage de l’information 10/10/2012 Y.ELMARZAK 1 CPGE PCSI DAKHLA

Y.ELMARZAK 2410/10/2012

Complément à 1 du nombre auquel on rajoute la valeurde 1 Dit « complément à 2 » Codage nombres signés avec complément à 2 Nb positif : comme pour un entier non signé Nb négatif : complément arithmétique de son opposé positif Bit de poids fort code le signe : 0 = positif, 1 = négatif Exemple : 6 = (0110)2 avec précision de 4 bits Complément à 1 : 1001 Complément à 2 : 1001 + 1 = 1010

Représentation en complément à 2Complément arithmétique

Page 25: Codage de l’information 10/10/2012 Y.ELMARZAK 1 CPGE PCSI DAKHLA

Y.ELMARZAK 2510/10/2012

Exemple pour codage de -57 pour les 3 méthodes, sur 8 bits:

57 = (00111001)2 Signe et valeur absolue : 10111001 Complément à 1 : 11000110 Complément à 2 : 11000111 Dans tous les cas Si bit de poids fort = 0 : entier positif Si bit de poids fort = 1 : entier négatif

Entiers signés en binaire : résumé

Page 26: Codage de l’information 10/10/2012 Y.ELMARZAK 1 CPGE PCSI DAKHLA

Y.ELMARZAK 2610/10/2012

valeur Valeur en binaire

Valeur en CA2

+ 0+ 1+ 2+ 3

000001010011

000001010011

- 4- 3- 2- 1

- 100- 011- 010- 001

100101110111

Si on travail sur 3 bits :

•Dans cette représentation , le bit du poids fort nous indique le signe .•On remarque que le zéro n’a pas une double représentation.

Page 27: Codage de l’information 10/10/2012 Y.ELMARZAK 1 CPGE PCSI DAKHLA

Y.ELMARZAK 2710/10/2012

Les opérations arithmétiques (addition, soustraction,multiplication, division) sont réalisablesdans toute base B Avec mêmes règles que pour la base décimale Retenues également mais dépendant de la base Quand on additionne 2 chiffres a et b dans la base B Si la somme des valeurs décimales de a et b dépasse ou égale B alors il y a une retenue Exemple : principes de l'addition binaire 0 + 0 = 0 0 + 1 = 1 1 + 1 = 10 soit 0 avec une retenue de 1

Calculs dans une base B

Page 28: Codage de l’information 10/10/2012 Y.ELMARZAK 1 CPGE PCSI DAKHLA

Y.ELMARZAK 2810/10/2012

Exemple : 10 + 1011 : 0010 = 2 + 1011 = 11 1101= 13 Autre exemple : 1101 + 1010 : 1101 = 13 + 1010 = 10 10111= 23 Addition de 2 nombres de 4 bits : on a besoin

dans cet exemple de 5 bits Potentiel problème de débordement

Addition binaire

Page 29: Codage de l’information 10/10/2012 Y.ELMARZAK 1 CPGE PCSI DAKHLA

Y.ELMARZAK 2910/10/2012

Débordement : la taille allouée (8, 16 ... bits) aucodage d'un entier est trop petite pour coder oustocker le résultat d'un calculExemple avec addition, sur 8 bits, non signé :10110011 + 10000101 = 100111000Besoin de 9 bits pour coder le nombre Stockage du résultat impossible sur 8 bits Exemple avec addition, sur 8 bits, signé : 01110011 + 01000101 = 10111000 Addition de 2 positifs donne un négatif !

Débordement

Page 30: Codage de l’information 10/10/2012 Y.ELMARZAK 1 CPGE PCSI DAKHLA

Y.ELMARZAK 3010/10/2012

Exemple : 1101 – 1011 1101 = 13 1011= 11 0010= 2 Autre technique : Utiliser les compléments à 2 et ne faire que desadditions

Soustraction binaire

0-0=0 0-1=1 avec 1 retenue 1-0=1 1-1=0

Soustraction binaire : peut faire comme en décimal

Page 31: Codage de l’information 10/10/2012 Y.ELMARZAK 1 CPGE PCSI DAKHLA

Y.ELMARZAK 3110/10/2012

Codage en complément à 2Simplifie les additions et soustractions On peut additionner directement des nombres, quelsque soient leurs signes, le résultat sera directementcorrect (si pas de débordement) et « bien codé » Soustraction d'un nombre = addition de son complémentà 2 A – B = A + comp2 (B) Valable dans tous les cas, quels que soient les signes deA et B Là aussi le résultat est directement valide si pas de débordement

Addition/soustraction binaire en signé