42
©Pierre Marchand, 2001 1 Objectifs : À la fin de cette unité, -vous saurez comment passer d’une base à l’autre -vous saurez comment sont représentés dans l'ordinateur les nom-bres fractionnaires et les nombres exprimés en virgule flottante. -vous saurez comment l'ordinateur effectue des calculs sur des nombres utilisant ces représentations. Pour y arriver, vous devez maîtriser les objectifs suivants : -passer d'une base à une autre par différentes méthodes : évaluation à la main, à l'aide de tables, ou à l'aide d'une calculette; Unité 3: Représentation interne des informations

©Pierre Marchand, 2001 69 Objectifs : À la fin de cette unité, -vous saurez comment passer dune base à lautre -vous saurez comment sont représentés dans

Embed Size (px)

Citation preview

Page 1: ©Pierre Marchand, 2001 69 Objectifs : À la fin de cette unité, -vous saurez comment passer dune base à lautre -vous saurez comment sont représentés dans

©Pierre Marchand, 2001 1

Objectifs :À la fin de cette unité,

- vous saurez comment passer d’une base à l’autre

- vous saurez comment sont représentés dans l'ordinateur les nom-bres fractionnaires et les nombres exprimés en virgule flottante.

- vous saurez comment l'ordinateur effectue des calculs sur des nombres utilisant ces représentations.

Pour y arriver, vous devez maîtriser les objectifs suivants :

- passer d'une base à une autre par différentes méthodes : évaluation à la main, à l'aide de tables, ou à l'aide d'une calculette;

Unité 3: Représentation interne des informations

Page 2: ©Pierre Marchand, 2001 69 Objectifs : À la fin de cette unité, -vous saurez comment passer dune base à lautre -vous saurez comment sont représentés dans

©Pierre Marchand, 2001 2

Objectifs :- passer d'une chaîne de caractères entrée au clavier pour

représenter un nombre entier, et la convertir dans le format binaire que comprend l'ordinateur, en passant par la représentation intermédiaire BCD.

- convertir la partie fractionnaire d'un nombre décimal dans sa représentation binaire et vice-versa;

- convertir un nombre réel dans sa représentation en virgule flottante;

- effectuer les quatre opérations arithmétiques sur des nombres en virgule flottante

Unité 3: Représentation interne des informations

Page 3: ©Pierre Marchand, 2001 69 Objectifs : À la fin de cette unité, -vous saurez comment passer dune base à lautre -vous saurez comment sont représentés dans

©Pierre Marchand, 2001 3

3.3 Données numériques3.3.1 Entiers positifs ou nuls

Le BCD

Le BCD est un code dans lequel chaque chiffre d’un nombre décimal est codé en binaire sur 4 bits.

Ces chiffres peuvent être représenté sur un octet individuel, c’est le BCD non compacté.

Exemple :

32710 0000 0011 0000 0010 0000 0111

Comme chaque chiffre n’utilise que 4 bits, on peut les grouper 2 par octet. C’est le BCD compacté.

Exemple :

5310 0101 0011

Unité 3: Représentation interne des informations

Page 4: ©Pierre Marchand, 2001 69 Objectifs : À la fin de cette unité, -vous saurez comment passer dune base à lautre -vous saurez comment sont représentés dans

©Pierre Marchand, 2001 4

3.3 Données numériques3.3.1 Entiers positifs ou nuls

Changements de base

Il s’agit d’évaluer l’expression dans la base destination.

Décimal-binaire :

14210 = (1 102) + (4 101) + (2 100)

= (1 10102 10102) + (1002 10102) + 00102

= 1000 11102

Unité 3: Représentation interne des informations

aiBi

i=0

n

Page 5: ©Pierre Marchand, 2001 69 Objectifs : À la fin de cette unité, -vous saurez comment passer dune base à lautre -vous saurez comment sont représentés dans

©Pierre Marchand, 2001 5

3.3 Données numériques3.3.1 Entiers positifs ou nulsChangements de base

Décimal-binaire : On peut effectuer les multiplications par 10 en remarquant que 10x = 8x + 2x, et en se rappelant qu’un décalage à gauche de 1 bit est une multiplication par 2. C’est généralement plus rapide que la multiplication binaire.

Ainsi, 10102 x 10102 = 10100002 + 101002 = 110 01002.

1002 x 10102 = 1000002 + 10002 = 10 10002

On obtient finalement :

14210 = 110 01002 + 10 10002 + 00102

et

14210 = 1000 11102

Unité 3: Représentation interne des informations

Page 6: ©Pierre Marchand, 2001 69 Objectifs : À la fin de cette unité, -vous saurez comment passer dune base à lautre -vous saurez comment sont représentés dans

©Pierre Marchand, 2001 6

3.3 Données numériques3.3.1 Entiers positifs ou nuls

Changements de base

Binaire-décimal :

1000 11102 = (1 27) + (0 26) + (0 25) + (0 24) + (1 23)

+ (1 22) + (1 21) + (0 20)

= 27 + 23 + 22 + 21

= 12810 + 8 + 4 + 2 = 14210

Unité 3: Représentation interne des informations

Page 7: ©Pierre Marchand, 2001 69 Objectifs : À la fin de cette unité, -vous saurez comment passer dune base à lautre -vous saurez comment sont représentés dans

©Pierre Marchand, 2001 7

3.3 Données numériques3.3.1 Entiers positifs ou nuls

Changements de base

Factorisation de Horner

= anBn + an-1Bn-1 + … + a1B + a0

= (((((0 + an)B + an-1)B + an-2)B …+ a1)B + a0

Unité 3: Représentation interne des informations

aiBi

i=0

n

Page 8: ©Pierre Marchand, 2001 69 Objectifs : À la fin de cette unité, -vous saurez comment passer dune base à lautre -vous saurez comment sont représentés dans

©Pierre Marchand, 2001 8

3.3 Données numériques3.3.1 Entiers positifs ou nuls

Changements de baseBinaire-décimal (algorithme R = b + 2R)

1000 1110 R = 0

1 + 2 0 = 1

0 + 2 1 = 2

0 + 2 2 = 4

0 + 2 4 = 8

1 + 2 8 = 1710

1 + 2 1710 = 3510

1 + 2 3510 = 7110

0 + 2 7110 = 14210

Unité 3: Représentation interne des informations

Arithmétique BCD

Page 9: ©Pierre Marchand, 2001 69 Objectifs : À la fin de cette unité, -vous saurez comment passer dune base à lautre -vous saurez comment sont représentés dans

©Pierre Marchand, 2001 9

3.3 Données numériques3.3.1 Entiers positifs ou nuls

Changements de base

Décimal-binaire (algorithme R = c + 10R)

142 R = 0

1 + 10102 0 = 1

1002 + 10102 1 = 11102

102 + 10102 11102 = 1000 11102

Unité 3: Représentation interne des informations

Page 10: ©Pierre Marchand, 2001 69 Objectifs : À la fin de cette unité, -vous saurez comment passer dune base à lautre -vous saurez comment sont représentés dans

©Pierre Marchand, 2001 10

3.3 Données numériques3.3.1 Entiers positifs ou nuls

Changements de base

Dans les techniques précédentes, on effectuait la conversion en utilisant l’arithmétique de la base destination.

Toutefois, on peut vouloir effectuer ces conversions en utilisant l’arithmétique de la base source. C’est le cas, par exemple, quand l’ordinateur, qui doit travailler en arithmétique binaire, désire effectuer une conversion binaire-décimal.

Pour convertir une nombre N d’une base source à une base destination en utilisant l’arithmétique de la base source, on divise le nombre N par la base destination en utilisant l’arithmétique de base source, jusqu’à ce que le quotient soit nul. La représentation de N dans la base destination est alors donnée par la séquence renversée des restes.

Unité 3: Représentation interne des informations

Page 11: ©Pierre Marchand, 2001 69 Objectifs : À la fin de cette unité, -vous saurez comment passer dune base à lautre -vous saurez comment sont représentés dans

©Pierre Marchand, 2001 11

3.3 Données numériques3.3.1 Entiers positifs ou nuls

Changements de base

Exemples : Convertir 2710 en base 4 :

Unité 3: Représentation interne des informations

27 27 / 4 = 6, reste 3

6 / 4 = 1, reste 2

1 / 4 = 0, reste 1 27 = 123

10

10 4

Page 12: ©Pierre Marchand, 2001 69 Objectifs : À la fin de cette unité, -vous saurez comment passer dune base à lautre -vous saurez comment sont représentés dans

©Pierre Marchand, 2001 12

3.3 Données numériques3.3.1 Entiers positifs ou nuls

Changements de base

Exemples : Convertir 1000 11102 en base 10

1000 11102 / 10102 = 11102, reste 00102

1110 / 1010 = 0001, reste 01002

0001 / 1010 = 0000, reste 00012

1000 11102 = 0001 0100 0010 = 14210 en BCD compacté

ou 0000 0001 0000 0100 0000 0010 en BCD non compacté

Unité 3: Représentation interne des informations

Page 13: ©Pierre Marchand, 2001 69 Objectifs : À la fin de cette unité, -vous saurez comment passer dune base à lautre -vous saurez comment sont représentés dans

©Pierre Marchand, 2001 13

3.3 Données numériques3.3.1 Entiers positifs ou nuls

Conversion hexadécimal-décimal et décimal-hexadécimal d’entiers à l’aide de la table de l’appendice 4.1 du supplément

La table hexadécimal-décimal est basée sur le principe qu’un nombre comme 14A616 est la somme de

100016 + 40016 + A016 + 6.

On va donc chercher la valeur décimal correspondante de chacun dans la table et on en fait la somme:

409610 + 102410 + 16010 + 6 = 528610

Cette méthode peut être utilisée pour la conversion binaire-décimal par programmation et s’avère très rapide.

Unité 3: Représentation interne des informations

Page 14: ©Pierre Marchand, 2001 69 Objectifs : À la fin de cette unité, -vous saurez comment passer dune base à lautre -vous saurez comment sont représentés dans

©Pierre Marchand, 2001 14

3.3 Données numériques3.3.1 Entiers positifs ou nulsConversion hexadécimal-décimal et décimal-hexadécimal d’entiers à l’aide de la table de l’appendice 4.1 du supplémentOn pourrait faire une table décimal-hexadécimal pour la conver-sion inverse. On peut également utiliser la même table que plus haut avec quelques calculs supplémentaires. On cherche dans la table la plus grande valeur décimale qui soit inférieure au nombre à convertir. On soustrait ce nombre, et on recommence avec le reste.

528610 - 409610 = 119010 -> 100016

119010 - 102410 = 16610 -> + 40016

16610 - 16010 = 610 -> + A016

610 - 610 = 0 -> + 616

= 14A616

Unité 3: Représentation interne des informations

Page 15: ©Pierre Marchand, 2001 69 Objectifs : À la fin de cette unité, -vous saurez comment passer dune base à lautre -vous saurez comment sont représentés dans

©Pierre Marchand, 2001 15

3.3 Données numériques3.3.1 Entiers positifs ou nuls

Changements de base

Conversion à partir l’ASCII

Exemple :

Supposons que l’utilisateur a tapé 327. On retrouve en mémoire les caractères ASCII ‘3’, ‘2’ et ‘7’ qui ont la représentation :

0011 0011 0011 0010 0011 0111

On soustrait 0011 0000 (3016 ou ‘0’) de chacun de ces caractères, ce qui nous donne la représentation en BCD non compacté :

0000 0011 0000 0010 0000 0111

On utilisera ces octets pour faire la conversion BCD-binaire.

Unité 3: Représentation interne des informations

Page 16: ©Pierre Marchand, 2001 69 Objectifs : À la fin de cette unité, -vous saurez comment passer dune base à lautre -vous saurez comment sont représentés dans

©Pierre Marchand, 2001 16

3.3 Données numériques3.3.1 Entiers positifs ou nuls

Changements de base

Conversion vers l’ASCII

De la façon inverse, après qu’on a effectué une conversion binaire décimal, on a une série d’octets qui constituent la représentation BCD non compacté du résultat. On n’a qu’à ajouter 3016 à chacun pour obtenir la représentation ASCII du nombre. Par exemple :

0000 0011 0000 0010 0000 0111

+ 0011 0000 0011 0000 0011 0000

= 0011 0011 0011 0010 0011 0111

Unité 3: Représentation interne des informations

‘3’ ‘2’ ‘7’

Page 17: ©Pierre Marchand, 2001 69 Objectifs : À la fin de cette unité, -vous saurez comment passer dune base à lautre -vous saurez comment sont représentés dans

©Pierre Marchand, 2001 17

3.3 Données numériques3.3.3 Nombres fractionnaires

Changements de base

N anBn + an-1Bn-1 + … + a1B1+ a0 B0+ a-1B-1 + a-2B-2 + …

En binaire, ai = 0 ou 1 et B = 2

N an2n + an-12n-1+ … + a1.2 + a0 + a-12-1 + a-22-2 + …

Cette dernière formule peut donc servir de conversion binaire-décimal.

Exemple :

Unité 3: Représentation interne des informations

=an2n +an−12

n−1+...+a1.2+a0 +a−112

+a−214

+a−318

+...

0,0112 =0×12

+1×14

+1×18

=0,2510 +0,12510 =0,32510

Page 18: ©Pierre Marchand, 2001 69 Objectifs : À la fin de cette unité, -vous saurez comment passer dune base à lautre -vous saurez comment sont représentés dans

©Pierre Marchand, 2001 18

3.3 Données numériques3.3.3 Nombres fractionnaires

Changements de base

0,562510

Réponse : 0,100100002

Pour passer du décimal à une autre base, il suffit de multiplier par la base en question au lieu de 2.

Unité 3: Représentation interne des informations

0, 5625 x 21, 125 x 20, 25 x 20, 5 x 21, 0 x 20, 0

Page 19: ©Pierre Marchand, 2001 69 Objectifs : À la fin de cette unité, -vous saurez comment passer dune base à lautre -vous saurez comment sont représentés dans

©Pierre Marchand, 2001 19

3.3 Données numériques3.3.3 Nombres fractionnaires

Changements de base

Pour un nombre constitué d’une partie entière et d’une partie fractionnaire, on convertit les deux parties séparément, la partie entière avec l’une des méthodes de conversion des entiers, la partie fractionnaire avec les méthodes présentées dans la présente section.

Exemple: convertir 123,214 en décimal

1234 = 1 42 + 2 4 + 3 = 2710

0,214 = 2 4-1 + 1 4-2 = 2 x 0,25 + 1 0,0625 = 0,562510

Réponse : 27,562510

Unité 3: Représentation interne des informations

Page 20: ©Pierre Marchand, 2001 69 Objectifs : À la fin de cette unité, -vous saurez comment passer dune base à lautre -vous saurez comment sont représentés dans

©Pierre Marchand, 2001 20

3.3 Données numériques3.3.3 Nombres fractionnaires

Changements de base

Convertir 27,562510 en base 4 :

27 / 4 = 6, reste 3

6 / 4 = 1, reste 2

1 / 4 = 0, reste 1 -> 1234

0, 5625 x 4

2, 25 x 4

1, 0 x 4

0, 0

Réponse : 123,2100004

Unité 3: Représentation interne des informations

Page 21: ©Pierre Marchand, 2001 69 Objectifs : À la fin de cette unité, -vous saurez comment passer dune base à lautre -vous saurez comment sont représentés dans

©Pierre Marchand, 2001 21

3.3 Données numériques3.3.3 Nombres fractionnaires

Conversion décimal-binaire et binaire décimal à l’aide de la table de l’appendice 4.2 du supplément

Même principe que pour les entiers.

Unité 3: Représentation interne des informations

Page 22: ©Pierre Marchand, 2001 69 Objectifs : À la fin de cette unité, -vous saurez comment passer dune base à lautre -vous saurez comment sont représentés dans

©Pierre Marchand, 2001 22

3.3 Données numériques3.3.3 Nombres fractionnaires

Virgule fixe

Inconvénients : étendue de représentation limitée

32 bits seulement dans la partie entière

32 bits seulement dans la partie fractionnaire

Perte de précision pour les petits nombres

Complexité de traitement de la virgule lors d’opé-rations telles que la multiplication et la division

Unité 3: Représentation interne des informations

32 32Partie entière Partie fractionnaire

,

Page 23: ©Pierre Marchand, 2001 69 Objectifs : À la fin de cette unité, -vous saurez comment passer dune base à lautre -vous saurez comment sont représentés dans

©Pierre Marchand, 2001 23

3.3 Données numériques3.3.3 Nombres fractionnaires

Virgule fixeExemples : 1,0 = 00000001,0000000016

-1,0 = FFFFFFFF,0000000016

0,5 = 00000000,8000000016

-0,5 = FFFFFFFF,8000000016

Plus petit nombre positif : 00000000,00000001 = 1 / 4 294 967 296

Plus grand nombre positif :

7FFFFFFF,FFFFFFFF = +2 147 483 647,999999999767

Plus grand nombre négatif :80000000,00000000 = -2 147 483 648, 999999999767

Plus petit nombre négatif :

FFFFFFFF,FFFFFFFF = -1 / 4 294 967 296

Unité 3: Représentation interne des informations

Page 24: ©Pierre Marchand, 2001 69 Objectifs : À la fin de cette unité, -vous saurez comment passer dune base à lautre -vous saurez comment sont représentés dans

©Pierre Marchand, 2001 24

3.3 Données numériques3.3.3 Nombres fractionnaires

Virgule flottante

N = (1)s M BE

où : M = mantisse

B = base

E = exposant

s = signe de la mantisse

Exemples:

10110 = 1,01 102

- 510 = - 1012 = - 1,01 22

510 = 1012 = 516 = 0,0101 161

Unité 3: Représentation interne des informations

Page 25: ©Pierre Marchand, 2001 69 Objectifs : À la fin de cette unité, -vous saurez comment passer dune base à lautre -vous saurez comment sont représentés dans

©Pierre Marchand, 2001 25

3.3 Données numériques3.3.3 Nombres fractionnaires

Virgule flottante

Norme IEEE 754 de simple précision

La mantisse M est normalisée sous la forme 1,f et l’exposant est ajusté en conséquence. La partie f est codée sur 23 bits.

On ajoute 127 à E et le total est codé sur 8 bits.

s est le signe de la mantisse.

N = (-1)s 2E 1,f

Unité 3: Représentation interne des informations

8 23E+127 fs

32

Page 26: ©Pierre Marchand, 2001 69 Objectifs : À la fin de cette unité, -vous saurez comment passer dune base à lautre -vous saurez comment sont représentés dans

©Pierre Marchand, 2001 26

3.3 Données numériques3.3.3 Nombres fractionnairesVirgule flottanteNorme IEEE 754 de simple précisionExemple :

100010 = 3E816 = 11111010002 = 1,111101000 29

s = 0 car nombre positif

E = 9 donc E + 127 = 136 = 100010002

M = 1,111101000 donc f = ,111101000

qu’on peut écrire 447A0000IEEE en groupant les bits 4 par 4 et en les codant en hexadécimal.

Unité 3: Représentation interne des informations

0 10001000 11110100000000000000000

Page 27: ©Pierre Marchand, 2001 69 Objectifs : À la fin de cette unité, -vous saurez comment passer dune base à lautre -vous saurez comment sont représentés dans

©Pierre Marchand, 2001 27

3.3 Données numériques3.3.3 Nombres fractionnaires

Virgule flottante

Norme IEEE 754 de simple précision

Exemple :

Convertir le nombre de simple précision 40500000IEEE en décimal.

s = 0 donc signe = +

E + 127 = 128, donc E = 1

M = 1,f = 1,101

N = +1,1012 21 = 11,012 20 = 3,2510

Unité 3: Représentation interne des informations

0 10000000 10100000000000000000000

Page 28: ©Pierre Marchand, 2001 69 Objectifs : À la fin de cette unité, -vous saurez comment passer dune base à lautre -vous saurez comment sont représentés dans

©Pierre Marchand, 2001 28

3.3 Données numériques3.3.3 Nombres fractionnaires

Virgule flottante

Norme IEEE 754 de simple précision

Exemples :

+0 = 00000000IEEE -0 = 80000000IEEE

+1 = 3F800000IEEE -1 = BF800000IEEE

+2 = 40000000IEEE -2 = C0000000IEEE

+ = 7F800000IEEE - = FF800000IEEE

Unité 3: Représentation interne des informations

Page 29: ©Pierre Marchand, 2001 69 Objectifs : À la fin de cette unité, -vous saurez comment passer dune base à lautre -vous saurez comment sont représentés dans

©Pierre Marchand, 2001 29

3.3 Données numériques3.3.3 Nombres fractionnaires

Virgule flottante

Norme IEEE 754 de double précision

La mantisse M est normalisée sous la forme 1,f et l’exposant est ajusté en conséquence. La partie f est codée sur 52 bits.

On ajoute 1023 à E et le total est codé sur 11 bits.

s est le signe de la mantisse.

Unité 3: Représentation interne des informations

11 52E+1023 fs

64

Page 30: ©Pierre Marchand, 2001 69 Objectifs : À la fin de cette unité, -vous saurez comment passer dune base à lautre -vous saurez comment sont représentés dans

©Pierre Marchand, 2001 30

3.3 Données numériques3.3.3 Nombres fractionnaires

Virgule flottante

Étendue de représentation

En simple précision, la représentation des nombres normalisés positifs non nuls va de 00800000IEEE à 7F7FFFFFIEEE, soit :

1,000000000… x 2-126 à 1,1111111111… x 2127

9,4039548 10-38 à 3,4028235 10+38.

En double précision, elle va de 0010000000000000IEEE à 7FEFFFFFFFFFFFFFIEEE, soit :

1,0000000000... 2-1022 à 1,11111111111... 21023

2,22407385851 10-308 à 1,797693134862316 10308

Unité 3: Représentation interne des informations

Page 31: ©Pierre Marchand, 2001 69 Objectifs : À la fin de cette unité, -vous saurez comment passer dune base à lautre -vous saurez comment sont représentés dans

©Pierre Marchand, 2001 31

3.3 Données numériques3.3.3 Nombres fractionnaires

Virgule flottante

Nombres dénormalisés

En simple précision, si l’exposant E est -127 (représentation 00000000) et que les bits de la mantisse ne sont pas tous nuls, le nombre représenté est :

N = (s)-1 x 2-126 0,f

On peut ainsi, malgré une perte de précision, étendre la représen-tation jusqu’à 2-149, i.e. 10-45.

Unité 3: Représentation interne des informations

Page 32: ©Pierre Marchand, 2001 69 Objectifs : À la fin de cette unité, -vous saurez comment passer dune base à lautre -vous saurez comment sont représentés dans

©Pierre Marchand, 2001 32

3.3 Données numériques3.3.3 Nombres fractionnaires

Virgule flottante

Les NaN

Les représentations commençant par 7F ou FF en simple préci-sion et dont les autres bits ne sont pas tous 0 représentent des NaN (Not a Number). Ces NaN sont utilisés pour signaler des messages d’erreur.

Unité 3: Représentation interne des informations

Page 33: ©Pierre Marchand, 2001 69 Objectifs : À la fin de cette unité, -vous saurez comment passer dune base à lautre -vous saurez comment sont représentés dans

©Pierre Marchand, 2001 33

3.3 Données numériques3.3.3 Nombres fractionnaires

Virgule flottante

Sources d’erreur• Erreur d’arrondi ou de troncature• Débordement de capacité• Sous-débordement de capacité• Division par 0• Opérations invalides : , 0, 0 / , 0 / 0, etc.

Unité 3: Représentation interne des informations

Page 34: ©Pierre Marchand, 2001 69 Objectifs : À la fin de cette unité, -vous saurez comment passer dune base à lautre -vous saurez comment sont représentés dans

©Pierre Marchand, 2001 34

3.3 Données numériques3.3.3 Nombres fractionnaires

Virgule flottante

Addition et soustraction

On doit :

1. Extraire les mantisses et les exposants

2. Ajuster les exposants et les mantisses pour que les deux nombres aient l’exposant du plus grand des deux.

3. Effectuer l’addition ou la soustraction des mantisses

4. Normaliser la mantisse résultante s’il y a lieu

5. Replacer le résultat, mantisse et exposant, dans le format IEEE.

Unité 3: Représentation interne des informations

Page 35: ©Pierre Marchand, 2001 69 Objectifs : À la fin de cette unité, -vous saurez comment passer dune base à lautre -vous saurez comment sont représentés dans

©Pierre Marchand, 2001 35

3.3 Données numériques3.3.3 Nombres fractionnaires

Virgule flottante

Addition et soustraction

Exemple :

40400000IEEE + 3F000000IEEE

= 0 10000000 10000000000000000... + 0 01111110 00000000000000000...

= + 2128-127 1,100000… + 2126-127 1,000000...

= 1,1 21 + 1,0 2-1 = 1,1 21 + 0,01 21 = 1,11 21

= 0 10000000 11000000000000000000000

= 40600000IEEE

Unité 3: Représentation interne des informations

Page 36: ©Pierre Marchand, 2001 69 Objectifs : À la fin de cette unité, -vous saurez comment passer dune base à lautre -vous saurez comment sont représentés dans

©Pierre Marchand, 2001 36

3.3 Données numériques3.3.3 Nombres fractionnaires

Virgule flottante

Multiplication et division

A = a 2p et B = b 2q, alors : A B = ab 2p+q

A / B = (a/b) 2p-q

On doit :

1. Extraire les mantisses, les signes et les exposants

2. Additionner ou soustraire les exposants suivant le cas

2. Effectuer le produit ou le quotient des mantisses

4. Normaliser la mantisse résultante s’il y a lieu

5. Ajuster le signe s’il y a lieu

6. Replacer le résultat, signe, mantisse et exposant, dans le format IEEE.

Unité 3: Représentation interne des informations

Page 37: ©Pierre Marchand, 2001 69 Objectifs : À la fin de cette unité, -vous saurez comment passer dune base à lautre -vous saurez comment sont représentés dans

©Pierre Marchand, 2001 37

3.3 Données numériques3.3.3 Nombres fractionnaires

Virgule flottante

Multiplication et division

Exemple:

40A00000 C0C00000= 0 10000001 01000000000000000... 1 10000001 10000000000000000…

= + 2129-127 1,01 - 2129-127 1,1

= - 1,01 22 1,1 22 = - 1,1110 24

= 1 10000011 11100000000000000000000

= C1F00000IEEE

Unité 3: Représentation interne des informations

Page 38: ©Pierre Marchand, 2001 69 Objectifs : À la fin de cette unité, -vous saurez comment passer dune base à lautre -vous saurez comment sont représentés dans

©Pierre Marchand, 2001 38

3.3 Données numériques3.3.4 Décimaux codés en binaire

Code BCD = code pondéré 8-4-2-1 comme le binaire naturel

Code excédent-3 : chiffre = binaire + 3

Code 2 dans 5 : chiffre décimal codé sur 5 bits dont deux sont 1

Code biquinaire : chiffre décimal codé sur 7 bits, dont 1 dans les deux positions de gauche et 1 dans les 5 positions de droite est 1.

Les deux derniers codes permettent la détection d’erreurs.

Unité 3: Représentation interne des informations

Page 39: ©Pierre Marchand, 2001 69 Objectifs : À la fin de cette unité, -vous saurez comment passer dune base à lautre -vous saurez comment sont représentés dans

©Pierre Marchand, 2001 39

3.3 Données numériques3.3.4 Décimaux codés en binaire

décimal BCD excédent-3 2 dans 5 biquinaire

0 0000 0011 00011 01 000011 0001 0100 00101 01 000102 0010 0101 00110 01 001003 0011 0110 01001 01 010004 0100 0111 01010 01 100005 0101 1000 01100 10 000016 0110 1001 10001 10 000107 0111 1010 10010 10 001008 1000 1011 10100 10 010009 1001 1100 11000 10 10000

Unité 3: Représentation interne des informations

Page 40: ©Pierre Marchand, 2001 69 Objectifs : À la fin de cette unité, -vous saurez comment passer dune base à lautre -vous saurez comment sont représentés dans

©Pierre Marchand, 2001 40

3.3 Données numériquesConversion rapide des grands nombres décimaux en binaire

Nous utilisons l'algorithme de la division par la base destination en arithmétique de base 10, sauf que nous choisissons la base 65536 (216).Exemple : Convertir 36 000 000 000 en binaire1e étape

36 000 000 000 / 65 536 =549 316, reste 26 624549 316 / 65 536 = 8, reste 25 0288 / 65 536 = 0, reste 8Donc :36 000 000 000 = 8 x 655362 + 25028 x 655361 + 26624

Unité 3: Représentation interne des informations

Page 41: ©Pierre Marchand, 2001 69 Objectifs : À la fin de cette unité, -vous saurez comment passer dune base à lautre -vous saurez comment sont représentés dans

©Pierre Marchand, 2001 41

3.3 Données numériquesConversion rapide des grands nombres décimaux en binaire

2e étapeComme 65 536 = 2562, on représente ensuite chacun

des termes en base 256.25 028 / 256 = 97, reste 19626 624 / 256 = 104, reste 0Donc :36 000 000 000 = 8 x 2564 + 97 x 2563 + 196 x 2562

+ 104 x 2561 + 0 x 2560

Unité 3: Représentation interne des informations

Page 42: ©Pierre Marchand, 2001 69 Objectifs : À la fin de cette unité, -vous saurez comment passer dune base à lautre -vous saurez comment sont représentés dans

©Pierre Marchand, 2001 42

3.3 Données numériquesConversion rapide des grands nombres décimaux en binaire

3e étapeComme 256 = 162, on représente ensuite chacun des

termes en base 16.97 / 16 = 6, reste 1 196 / 16 = 12, reste 4104 / 16 = 6, reste 8 0 / 16 = 0, reste 0Donc36 000 000 000 = 8 x 168 + 6 x 167 + 1 x 166 + 12 x 165

+ 4 x 164 + 6 x 163 + 8 x 162 + 0 x 161 + 0 x 160

Et finalement : 36 000 000 000 = 861C4680016

Unité 3: Représentation interne des informations