Ch2 representation

Download Ch2 representation

Post on 10-Jul-2015

193 views

Category:

Documents

1 download

Embed Size (px)

TRANSCRIPT

  • Chapitre 2 : Reprsentation de linformation dans la machine Introduction Reprsentation des nombres ngatifsSigne / valeur absolueComplment 1Complment 2Reprsentation des nombres relsVirgule fixeVirgule flottante Le codage BCD et EXCESS3Reprsentation des caractres

  • Introduction

  • 1. Reprsentation des nombres entiers Il existe deux types dentiers : les entiers non signs ( positifs ) et les entiers signs ( positifs ou ngatifs )Problme : Comment indiquer la machine quun nombre est ngatif ou positif ? Il existe 3 mthodes pour reprsenter les nombres ngatifs :Signe/ valeur absolue Complment 1( complment restreint )Complment 2 ( complment vrai )

  • 1.1 Reprsentation 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 ngatif0 : signe positif Les autres bits ( n -1 ) dsignent la valeur absolue du nombre.

    Exemple : Si on travail sur 4 bits.1 001Signe Valeur absolue 1001 est la reprsentation de - 10 001Signe Valeur absolue 0001 est la reprsentation de + 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 , lintervalle des valeurs quon peut reprsenter en S/VA : -(2 (n -1) -1) N +(2 (n -1) -1 )

  • Avantages et inconvnients de la reprsentation signe/valeur absolueCest une reprsentation assez simple .On remarque que le zro possde deux reprsentations +0 et -0 ce qui conduit des difficults au niveau des oprations arithmtiques.Pour les oprations arithmtiques il nous faut deux circuits : lun pour laddition et le deuxime pour la soustraction . Lidal est dutiliser un seul circuit pour faire les deux oprations, puisque a- b =a + ( -b )

  • 1.2 Reprsentation en complment un ( complment restreint )On appel complment un dun nombre N un autre nombre N tel que : N+N=2n-1 n : est le nombre de bits de la reprsentation du nombre N .

    Exemple : Soit N=1010 sur 4 bits donc son complment un de N : N= (24 - 1)-NN=(16-1 )-(1010)2= (15 ) - (1010)2 = (1111)2 (1010)2 = 0101

  • Remarque 1 : Pour trouver le complment un dun nombre, il suffit dinverser tous les bits de ce nombre : si le bit est un 0 mettre sa place un 1 et si cest un 1 mettre sa place un 0 . Exemple : 0 1 0

    0 1 0 1 0 1 0 1 0

    1 0 1 0 1Sur 4 BitsSur 5 Bits

  • Remarque 2Dans cette reprsentation , le bit du poids fort nous indique le signe ( 0 : positif , 1 : ngatif ).Le complment un du complment un dun nombre est gale au nombre lui mme . CA1(CA1(N))= N Exemple : Quelle est la valeur dcimale reprsente par la valeur 101010 en complment 1 sur 6 bits ?Le bit poids fort indique qu'il s'agit d'un nombre ngatif. Valeur = - CA1(101010)= - (010101)2= - ( 21)10

  • On remarque que dans cette reprsentation le zro possde aussi une double reprsentation ( +0 et 0 ) .Si on travail sur 3 bits : Dans cette reprsentation , le bit du poids fort nous indique le signe .

  • Sur 3 bits on remarque que 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 )Si on travail sur n bits , lintervalle des valeurs quon peut reprsenter en CA1 :

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

  • 1.3 Complment 2 ( complment vrai )Si on suppose que a est un nombre sur n bits alors : a + 2 n = a modulo 2n

    et si on prend le rsultat sur n bits on va obtenir la mme valeur que a .a + 2 n = a

    Exemple : soit a = 1001 sur 4 bits 24= 10000Si on prend le rsultat sur 4 bits on trouve la mme valeur de a = 1001

  • Si on prend deux nombres entiers a et b sur n bits , on remarque que la soustraction peut tre ramener une addition : a b = a + (-b) Pour cela il suffit de trouver une valeur quivalente -b ? a b = a + 2n b = a + (2n 1) b + 1

    On a b + CA1(b)= 2n 1 donc CA1(b) = (2n 1) b

    Si on remplace dans la premire quation on obtient :a b = a + CA1(b) + 1

    La valeur CA1(b)+1 sappelle le complment deux de b :CA1(b)+1 = CA2(b)

    Et enfin on va obtenir : a - b = a+ CA2(b) transformer la soustraction en une addition .

  • ExempleTrouver le complment vrai de : 01000101 sur 8 bits ?

    CA2(01000101)= CA1(01000101)+ 1CA1(01000101)= (10111010)CA2(01000101)=(10111010)+ 1 = (10111011)

    Remarque 1 :Pour trouver le comptemment 2 dun nombre : il faut parcourir les bits de ce nombre partir du poids faible et garder tous les bits avant le premier 1 et inverser les autres bits qui viennent aprs.0 1 0 0 0 1 0 11 0 1 1 1 0 1 11 1 0 1 0 1 0 00 0 1 0 1 1 0 0

  • Remarque 2Dans cette reprsentation , le bit du poids fort nous indique le signe ( 0 : positif , 1 : ngatif ).Le complment deux du complment deux dun nombre est gale au nombre lui mme . CA2(CA2(N))= N Exemple : Quelle est la valeur dcimale reprsente par la valeur 101010 en complment deux sur 6 bits ?Le bit poids fort indique qu'il s'agit d'un nombre ngatif. Valeur = - CA2(101010)= - (010101 + 1)= - (010110)2= - ( 22)

  • Si on travail sur 3 bits : Dans cette reprsentation , le bit du poids fort nous indique le signe .On remarque que le zro na pas une double reprsentation.

  • Sur 3 bits on remarque que les valeurs sont comprises entre -4 et +3

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

    Si on travail sur n bits , lintervalle des valeurs quon peut reprsenter en CA2 : -(2 (n -1)) N +(2 (n -1) -1 )La reprsentation en complment deux ( complment vrai ) est la reprsentation la plus utilise pour la reprsentation des nombres ngatifs dans la machine.

  • Oprations arithmtiques en CA2Effectuer les oprations suivantes sur 5 Bits , en utilisant la reprsentation en CA2Le rsultat est positif (01101)2= ( 13)10Le rsultat est positif (00101)2= ( 5)10Report

  • - 9- 4- 131 0 1 1 1

    1 1 1 0 0+ 1 1 0 0 1 1Le rsultat est ngatif : Rsultat = - CA2 (10011)= -( 01101)= - 13Le rsultat est positif (00000)2= ( 0)10Report Report

  • La retenue et le dbordement On dit quil y a une retenue si une opration arithmtique gnre un report .On dit quil y a un dbordement (Over Flow ) ou dpassement de capacit: si le rsultat de lopration sur n bits et faux . Le nombre de bits utiliss est insuffisant pour contenir le rsultatAutrement dit le rsultat dpasse lintervalle des valeurs sur les n bits utiliss.

  • Cas de dbordement + 9+ 8+ 170 1 0 0 1

    0 1 0 0 0+ 1 0 0 0 1Nous avons un dbordement si la somme de deux nombres positifs donne un nombre ngatif .Ou la somme de deux nombres ngatifs donne un Nombre positif Il y a jamais un dbordement si les deux nombres sont de signes diffrents.1Ngatif Positif 100

  • 2. La reprsentation des nombres rels Un nombre rel est constitu de deux parties : la partie entire et la partie fractionnelle ( les deux parties sont spares par une virgule )Problme : comment indiquer la machine la position de la virgule ?Il existe deux mthodes pour reprsenter les nombre rel :Virgule fixe : la position de la virgule est fixeVirgule flottante : la position de la virgule change ( dynamique )

  • 2.1 La virgule fixe Dans cette reprsentation la partie entire est reprsente sur n bits et la partie fractionnelle sur p bits , en plus un bit est utilis pour le signe.Exemple : si n=3 et p=2 on va avoir les valeurs suivantes Dans cette reprsentation les valeurs sont limites et nous navons pas une grande prcision

  • 2.2 Reprsentation en virgule flottante Chaque nombre rel peut scrire de la faon suivante : N= M * b e M : mantisse , b : la base , e : lexposant

    Exemple : 15,6 = 0,156 * 10+2- ( 110,101)2 = - (0,110101)2 * 2+3 (0,00101)2= ( 0,101)2 * 2-2

    Remarque : on dit que la mantisse est normalise si le premier chiffre aprs la virgule est diffrent de 0 et le premier chiffre avant la virgule est gale 0.

  • Dans cette reprsentation sur n bits : La mantisse est sous la forme signe/valeur absolue 1 bit pour le signe et k bits pour la valeur.Lexposant ( positif ou ngatif ) est reprsent sur p bits . 1 bit p bits k bitsPour la reprsentation de lexposant on utilise : Le complment deux Exposant dcal ou biais

    Signe mantisseExposantMantisse normalise

  • Reprsentation de lexposant en complment deux On veut reprsenter les nombres ( 0,015)8 et -( 15, 01)8 en virgule flottante sur une machine ayant le format suivant : 1 bit 4 bits 8 bits(0,015)8=(0,000001101)2= 0,1101 * 2-5

    Signe mantisse : positif ( 0)Mantisse normalis : 0,1101Exposant = -5 utiliser le complment deux pour reprsenter le -5Sur 4 bits CA2(0101)=1011

    1 bit 4 bits 8 bits

    Signe mantisseExposant en CA2Mantisse normalise

    0 1 0 1 11 1 0 1 0 0 0 0

  • - (15,01)8 = - (001101,000001)2= - 0,1101000001 * 24

    Signe mantisse : ngatif ( 1)Mantisse normalise : 0,1101000001Exposant = 4 , en complment deux il garde la mme valeur ( 0100)

    1 bit 4 bits 8 bitsRemarque : si la mantisse est sur k bits et si elle est reprsent sur la machine sur k bits tel que k> k , alors la mantisse sera tronque : on va prendre uniquement k bits perdre dans la prcision .On remarque que la mantisse est sur 10 bits (1101 0000 01), et sur la machine seulement 8 bits sont utiliss pou