Vous êtes sur la page 1sur 10

CHAPITRE 1 : LA NUMERATION (Corrections des exercices)

Page 1

2. 2.1

FORMAT DES NOMBRES PRPARATION

2.1.1.1 Conversion du nombre dcimal entier non sign 32928 en nombre binaire sur 16 bits

2.1.1.2 Conversion du nombre hexadcimal entier non sign 0xA023 en nombre dcimal 10 163 + 0 162 + 2 161 + 3 160 = 10 4096 + 2 16 + 3 = 20995 {
A

Microinformatique

CHAPITRE 1 : LA NUMERATION (Corrections des exercices)

Page 2

2.2 2.2.1 2.2.2

RPONSE AUX QUESTIONS DU TP

Conversion de nombres entiers signs

2.2.2.1 2.2.2.2 Complment 2 sur 16 bits du nombre hexadcimal 4BA8


16 16 16 16 1
1 1

1
1

1
1

10000
4BA8

5CB
12 11

1 16 16 16 16 1 5 12 11 8 0 11 4 5 8 B

Rsultat : B458

2.2.2.3 Conversion du nombre dcimal entier sign -12928 en nombre hexadcimal sur 16 bits

2.2.3

Conversion de nombres fractionnaires signs

2.2.3.1 Nombre fractionnaire 3.1263427734375 sur 16 bits avec le maximum de prcision.

2.2.3.2 Exprimer les nombres 1.726945 et 9.129573 en binaire puis en hexadcimal avec le meilleur format
Microinformatique

CHAPITRE 1 : LA NUMERATION (Corrections des exercices)

Page 3

Le premier nombre sexprime en format 2.14 : 1.726945 (01.10111010000110b) 6E86h Le second nombre sexprime en format 5.11 : 9.129573 (01001.00100001001b) 4909h 2.2.3.3 Plage des nombres reprsents en format n.m La valeur minimum dans le format n.m vaut : -2n-1 La valeur maximum dans le format n.m vaut : 2n-1-2-m La plage du multiplicateur et du multiplicande vaut [ -2n-1 2n-1-2-m ] [ -2n-1 2n-1 [ 2.2.3.4 Nombre de bits minimums ncessaires pour exprimer le nombre fractionnaire dcimal 0.4 Comme le montre la figure suivante, le nombre fractionnaire dcimal 0.4 prsente en binaire une priodicit. Il faut donc un nombre infini de bits pour exprimer cette valeur avec exactitude. Matlab utilise par dfaut le format virgule flottante sur 64 bits, soit 1 bit de signe, 11 bit pour lexposant et 52 bits pour la mantisse. Sachant que la mantisse prend toujours la forme 1.xx et que le 1 napparat pas (redondance de linformation), 0.4 est donc exprim par 53 bits. LA fonction dec2bin (decimal to binary) montre une erreur sur le 52me bit mais le premier bit (bit de poids fort) napparat pas.

Calcul dtaill :
0.4 0.8 1.6 0.6 1.2 0.2 0.4 0.8 1.6 0.6 1.2 0.2 0.4 0.8 1.6 x2 x2 -1 -1 x2 x2 -1 -1 x2 x2 -1 0 1 1 0 0 1 1 0 0 1 Rsultat : 0.01100110011001100110011 . b

Microinformatique

CHAPITRE 1 : LA NUMERATION (Corrections des exercices)

Page 4

2.2.4

Conversion de nombres en virgule flottante 32 bits

2.2.4.1 Conversion de -18.75 en nombre binaire virgule flottante 32 bits 18 10010b 10.75 10010.110b 0.75 0.110b On dcale la virgule jusqu'au premier bit (le plus gauche) valant 1. Dplacer la virgule gauche revient diviser le nombre par 2 : 10010.110b = 1.0010110b 2100b Par consquent, on peut dfinir chaque terme de la reprsentation ANSI-IEEE 754 32 bits en virgule flottante. Signe: Ngatif Exposant: 4 Mantisse: 001011 Et par consquent Signe =1 Exposant = 4 + 127 10000011b Mantisse = 001 0110 0000 0000 0000 0000b Donc, -18.75 en nombre binaire virgule flottante 32 bits vaut :

1100 0001 0001 0110 0000 0000 0000 0000 b C116000h


Remarque Le signe est dfini comme : positif = 0, ngatif = 1. ATTENTION!!!! Le nombre, positif ou ngatif, n'est JAMAIS stock en complment 2. Pour obtenir l'exposant: ajouter 7Fh (0111 1111b) pour un nombre de 32 bits, et 3FFh (011 1111 1111b) pour un nombre de 64 bits. Pour obtenir la mantisse, garder seulement les bits qui suivent la virgule et complter droite avec des zros. Soit coder la valeur 525,5.

525,5 est positif donc le 1er bit sera 0. Sa reprsentation en base 2 est la suivante : 1000001101,1 En normalisant, on trouve : 1,0000011011*29 On ajoute 127 l'exposant qui vaut 9 ce qui donne 136, soit en base 2 : 10001000 La mantisse est compose de la partie dcimale de 525,5 en base 2 normalise, c'est--dire 0000011011. Comme la mantisse doit occuper 23 bits, il est ncessaire d'ajouter des zros pour la complter : 00000110110000000000000 La reprsentation du nombre 525,5 en binaire avec la norme IEEE est donc : 0 1000 1000 00000110110000000000000 ou 0100 0100 0000 0011 0110 0000 0000 0000 (4403600 en hexadcimal)

Microinformatique

CHAPITRE 1 : LA NUMERATION (Corrections des exercices)

Page 5

Exemple avec un rel ngatif : Soit coder la valeur -0,625.


Le bit s vaut 1 car 0,625 est ngatif 0,625 s'crit en base 2 de la faon suivante : 0,101 On souhaite l'crire sous la forme 1.01 x 2-1 Par consquent l'exposant vaut 1111110 car 127 - 1 = 126 (soit 1111110 en binaire) la mantisse est 01000000000000000000000 (seuls les chiffres aprs la virgule sont reprsents, le nombre entier tant toujours gal 1) La reprsentation du nombre 0,625 en binaire avec la norme IEEE est : 1 1111 1110 01000000000000000000000 ou 1111 1111 0010 0000 0000 0000 0000 0000 (FF 20 00 00 en hexadcimal)

2.2.4.2 Conversion du nombre hexadcimal virgule flottante sur 32 bits 3E340000 en dcimal Recherche de la valeur binaire du nombre exprim en hexadcimal:

3E 340000 0011 1110 0011 0100 0000 0000 0000 0000 On peut identifier chaque termes du format ANSI-IEEE 754 32 bits. Signe = 0 Exposant Mantisse = 0111 1100 = 011 0100 0000 0000 0000 0000

On peut donc, par dcodage, crire : Signe = Positif Exposant = 7Ch 7Fh = -3h = -011b Mantisse = 01101b Puis le nombre peut tre reconstruit 01101b + 1011 0100b 2 011b = 0.00101101b 2 3 + 2 5 + 2 6 + 2 8 = 0.175781250 Par consquent, le nombre virgule flottante sur 32 bits 3E340000h vaut 0.175781250 en dcimal.
Remarque Lors de la reconstruction du nombre, s'il est normalis (comme dans la grande majorit des cas; voir la dfinition des nombres virgule flottante) il faut ajouter " 1, " gauche de la mantisse. Il faut ensuite soustraire 7Fh l'exposant pour un nombre de 32 bits, et 3FFh pour un nombre de 64 bits.

Microinformatique

CHAPITRE 1 : LA NUMERATION (Corrections des exercices)

Page 6

2.2.5

Reprsentation des nombres

2.2.5.1 Reprsentation des nombre sur 8 bits, 16 bits ou 32 bits


a) b) c) d) e) 64 4132 -16401 -42750 59680 0100 0000b 0001 0000 0010 0100b 1011 1111 1110 1111b 1111 1111 1111 1111 0101 1001 0000 0010b 0000 0000 0000 0000 1110 1001 0010 0000b

40h 1024h BFEFh FFFF 5902h 0000 E920h

2.2.5.2 Reprsentation factionnaire


a) b) c) d) e) 0.64 4.132 -16.401 -4.2750 59.680

Format 1.15 : Format 4.12 : Format 6.10 : Format 4.12 : Format 7.9 :

0.101000111101100b 0100.001000011101b 101111.1001100101b 1011.101110011010b 0111011.101011100b

51ECh 421Dh BE65h BB9Ah 775Ch

Microinformatique

CHAPITRE 1 : LA NUMERATION (Corrections des exercices)

Page 7

3. ADDITION ET SOUSTRACTION 3.1 3.2 3.2.1 3.2.2 Addition de deux nombres de 16 bits CORRIG RPONSE AUX QUESTIONS

3.2.2.1 Addition en binaire de deux nombres signs sur 16 bits. 0x32A6+0x2C1B

3.2.2.2 Addition en hexadcimal de deux nombres signs sur 16 bits. 0x32A6+0x2C1B

3.2.3

Addition et soustraction sur 16 bits avec test de dbordement

3.2.3.1 Addition de deux nombres positifs 50A3h+6A38h

3.2.3.2 Soustraction de deux nombres positifs 3826h-7000h

3.2.3.3 Addition dun nombre positif avec un nombre ngatif 38A3h+A330h


0x3 8 A 3 +0xA 3 3 0 0xD B D 3 >0 <0 <0 Pas de dbordement

3.2.3.4 Soustraction dun nombre positif un nombre ngatif C839h-7000h

Microinformatique

CHAPITRE 1 : LA NUMERATION (Corrections des exercices)

Page 8

3.2.4

Addition et soustraction sur 16 bits de mots de 32 bits avec test du bit de report

3.2.4.1 Addition de deux nombres positifs 30A345ADh+4A38A354h

3.2.4.2 Soustraction de deux nombres positifs 3826AD14h-70001DE6h

3.2.4.3 Addition dun nombre positif avec un nombre ngatif 38A3B2CBh+A3308456h


0x 38A3 0x A330 0x DBD4 B2CB 8456 1 3721 Retenue

3.2.4.4 Soustraction dun nombre positif un nombre ngatif C839DA56h-7000DF21h

Microinformatique

CHAPITRE 1 : LA NUMERATION (Corrections des exercices)

Page 9

4. MULTIPLICATION 4.1 4.2 4.2.1 CORRIG RPONSE AUX QUESTIONS Multiplication de deux nombres de 8 bits

4.2.1.1 Multiplication de deux nombres signs sur 16 bits (multiplicande et multiplicateur positif). (multiplicande et multiplicateur positifs)

4.2.2

Multiplication de deux nombres signs sur 16 bits

4.2.2.1 4.2.2.2 (multiplicande <0 et multiplicateur >0).

4.2.2.3 (multiplicande >0 et multiplicateur <0).

Microinformatique

CHAPITRE 1 : LA NUMERATION (Corrections des exercices)

Page 10

4.2.3

Produit de deux nombres fractionnaires

4.2.3.1 Format sur 16 bits des nombres fractionnaires 1.726945 et 9.129573 Le premier nombre sexprime en format 2.14 : 1.726945 (01.10111010000110b) 6E86h Le second nombre sexprime en format 5.11 : 9.129573 (01001.00100001001b) 4909h 4.2.3.2 Produit des deux nombres de 16 bits avec rsultat sur 32 bits Le produit des deux nombre vaut : ( 01.101110100043 b) ( 01001.00100001001b) = 0001111.11000100004 444443 { 144240110 4 4 1 3 14 244 2 4 3 1 24 14444001100010110110 4 3 2
1

6E86h 4909h = 1F8818B6h

72692871093750

129394531250

15

0.7658135294914250

4.2.3.3 Produit des deux nombres de 16 bits avec dcalage de 1 bit vers la gauche Aprs dcalage de 1 bit vers la droite : ( 01.101110100043 b) ( 01001.00100001001b) = 001111.11000100004 244444 3 { 144240110 4 4 1 3 14 244 2 4 3 123 144440011000101101100 4 4
1

6E86h 4909h = 3F10316Ch

72692871093750

129394531250

15

0.7658135294914250

4.2.3.4 Produit des deux nombres de 16 bits avec rsultat limit 16 bits Aprs arrondi sur 16 bits ( 01.101110100043 b) ( 01001.00100001001b) = 001111.1100010000 { 144240110 4 4 1 3 14 244 2 4 3 123 14243
1

6E86h 4909h = 3F10h

72692871093750

129394531250

15

7656250

Microinformatique