La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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

Présentations similaires


Présentation au sujet: "©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."— Transcription de la présentation:

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

2 ©Pierre Marchand, 2001 70 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

3 ©Pierre Marchand, 2001 71 3.3 Données numériques 3.3.1 Entiers positifs ou nuls Le BCD Le BCD est un code dans lequel chaque chiffre dun nombre décimal est codé en binaire sur 4 bits. Ces chiffres peuvent être représenté sur un octet individuel, cest le BCD non compacté. Exemple : 327 10 0000 00110000 00100000 0111 Comme chaque chiffre nutilise que 4 bits, on peut les grouper 2 par octet. Cest le BCD compacté. Exemple : 53 10 0101 0011 Unité 3: Représentation interne des informations

4 ©Pierre Marchand, 2001 72 3.3 Données numériques 3.3.1 Entiers positifs ou nuls Changements de base Il sagit dévaluer lexpression dans la base destination. Décimal-binaire : 142 10 = (1 10 2 ) + (4 10 1 ) + (2 10 0 ) = (1 1010 2 1010 2 ) + (100 2 1010 2 ) + 0010 2 = 1000 1110 2 Unité 3: Représentation interne des informations

5 ©Pierre Marchand, 2001 73 3.3 Données numériques 3.3.1 Entiers positifs ou nuls Changements de base Décimal-binaire : On peut effectuer les multiplications par 10 en remarquant que 10x = 8x + 2x, et en se rappelant quun décalage à gauche de 1 bit est une multiplication par 2. Cest généralement plus rapide que la multiplication binaire. Ainsi, 1010 2 x 1010 2 = 1010000 2 + 10100 2 = 110 0100 2. 100 2 x 1010 2 = 100000 2 + 1000 2 = 10 1000 2 On obtient finalement : 142 10 = 110 0100 2 + 10 1000 2 + 0010 2 et 142 10 = 1000 1110 2 Unité 3: Représentation interne des informations

6 ©Pierre Marchand, 2001 74 3.3 Données numériques 3.3.1 Entiers positifs ou nuls Changements de base Binaire-décimal : 1000 1110 2 =(1 2 7 ) + (0 2 6 ) + (0 2 5 ) + (0 2 4 ) + (1 2 3 ) + (1 2 2 ) + (1 2 1 ) + (0 2 0 ) =2 7 + 2 3 + 2 2 + 2 1 =128 10 + 8 + 4 + 2 = 142 10 Unité 3: Représentation interne des informations

7 ©Pierre Marchand, 2001 75 3.3 Données numériques 3.3.1 Entiers positifs ou nuls Changements de base Factorisation de Horner = a n B n + a n-1 B n-1 + … + a 1 B + a 0 = (((((0 + a n )B + a n-1 )B + a n-2 )B …+ a 1 )B + a 0 Unité 3: Représentation interne des informations

8 ©Pierre Marchand, 2001 76 3.3 Données numériques 3.3.1 Entiers positifs ou nuls Changements de base Binaire-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 = 17 10 1 + 2 17 10 = 35 10 1 + 2 35 10 = 71 10 0 + 2 71 10 = 142 10 Unité 3: Représentation interne des informations Arithmétique BCD

9 ©Pierre Marchand, 2001 77 3.3 Données numériques 3.3.1 Entiers positifs ou nuls Changements de base Décimal-binaire (algorithme R = c + 10R) 142 R = 0 1 + 1010 2 0 = 1 100 2 + 1010 2 1 = 1110 2 10 2 + 1010 2 1110 2 = 1000 1110 2 Unité 3: Représentation interne des informations

10 ©Pierre Marchand, 2001 78 3.3 Données numériques 3.3.1 Entiers positifs ou nuls Changements de base Dans les techniques précédentes, on effectuait la conversion en utilisant larithmétique de la base destination. Toutefois, on peut vouloir effectuer ces conversions en utilisant larithmétique de la base source. Cest le cas, par exemple, quand lordinateur, qui doit travailler en arithmétique binaire, désire effectuer une conversion binaire-décimal. Pour convertir une nombre N dune base source à une base destination en utilisant larithmétique de la base source, on divise le nombre N par la base destination en utilisant larithmé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

11 ©Pierre Marchand, 2001 79 3.3 Données numériques 3.3.1 Entiers positifs ou nuls Changements de base Exemples : Convertir 27 10 en base 4 : Unité 3: Représentation interne des informations 2727 / 4 = 6, reste 3 6 / 4 = 1, reste 2 1 / 4 = 0, reste 127 = 123 10 4

12 ©Pierre Marchand, 2001 80 3.3 Données numériques 3.3.1 Entiers positifs ou nuls Changements de base Exemples : Convertir 1000 1110 2 en base 10 1000 1110 2 / 1010 2 = 1110 2, reste 0010 2 1110 / 1010 = 0001, reste 0100 2 0001 / 1010 = 0000, reste 0001 2 1000 1110 2 = 0001 0100 0010 = 142 10 en BCD compacté ou 0000 0001 0000 0100 0000 0010 en BCD non compacté Unité 3: Représentation interne des informations

13 ©Pierre Marchand, 2001 81 3.3 Données numériques 3.3.1 Entiers positifs ou nuls Conversion hexadécimal-décimal et décimal-hexadécimal dentiers à laide de la table de lappendice 4.1 du supplément La table hexadécimal-décimal est basée sur le principe quun nombre comme 14A6 16 est la somme de 1000 16 + 400 16 + A0 16 + 6. On va donc chercher la valeur décimal correspondante de chacun dans la table et on en fait la somme: 4096 10 + 1024 10 + 160 10 + 6 = 5286 10 Cette méthode peut être utilisée pour la conversion binaire- décimal par programmation et savère très rapide. Unité 3: Représentation interne des informations

14 ©Pierre Marchand, 2001 82 3.3 Données numériques 3.3.1 Entiers positifs ou nuls Conversion hexadécimal-décimal et décimal-hexadécimal dentiers à laide de la table de lappendice 4.1 du supplément On 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. 5286 10 - 4096 10 = 1190 10 ->1000 16 1190 10 - 1024 10 = 166 10 ->+ 400 16 166 10 - 160 10 = 6 10 ->+ A0 16 6 10 - 6 10 = 0->+ 6 16 =14A6 16 Unité 3: Représentation interne des informations

15 ©Pierre Marchand, 2001 83 3.3 Données numériques 3.3.1 Entiers positifs ou nuls Changements de base Conversion à partir lASCII Exemple : Supposons que lutilisateur a tapé 327. On retrouve en mémoire les caractères ASCII 3, 2 et 7 qui ont la représentation : 0011 0011 0011 00100011 0111 On soustrait 0011 0000 (30 16 ou 0) de chacun de ces caractères, ce qui nous donne la représentation en BCD non compacté : 0000 00110000 00100000 0111 On utilisera ces octets pour faire la conversion BCD-binaire. Unité 3: Représentation interne des informations

16 ©Pierre Marchand, 2001 84 3.3 Données numériques 3.3.1 Entiers positifs ou nuls Changements de base Conversion vers lASCII De la façon inverse, après quon a effectué une conversion binaire décimal, on a une série doctets qui constituent la représentation BCD non compacté du résultat. On na quà ajouter 30 16 à chacun pour obtenir la représentation ASCII du nombre. Par exemple : 0000 00110000 00100000 0111 +0011 00000011 00000011 0000 =0011 00110011 00100011 0111 Unité 3: Représentation interne des informations 327

17 ©Pierre Marchand, 2001 85 3.3 Données numériques 3.3.3 Nombres fractionnaires Changements de base N a n B n + a n-1 B n-1 + … + a 1 B 1 + a 0 B 0 + a -1 B -1 + a -2 B -2 + … En binaire, a i = 0 ou 1 et B = 2 N a n 2 n + a n-1 2 n-1 + … + a 1.2 + a 0 + a -1 2 -1 + a -2 2 -2 + … Cette dernière formule peut donc servir de conversion binaire- décimal. Exemple : Unité 3: Représentation interne des informations

18 ©Pierre Marchand, 2001 86 3.3 Données numériques 3.3.3 Nombres fractionnaires Changements de base 0,5625 10 Réponse : 0,10010000 2 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

19 ©Pierre Marchand, 2001 87 3.3 Données numériques 3.3.3 Nombres fractionnaires Changements de base Pour un nombre constitué dune partie entière et dune partie fractionnaire, on convertit les deux parties séparément, la partie entière avec lune 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,21 4 en décimal 123 4 = 1 4 2 + 2 4 + 3 = 27 10 0,21 4 = 2 4 -1 + 1 4 -2 = 2 x 0,25 + 1 0,0625 = 0,5625 10 Réponse : 27,5625 10 Unité 3: Représentation interne des informations

20 ©Pierre Marchand, 2001 88 3.3 Données numériques 3.3.3 Nombres fractionnaires Changements de base Convertir 27,5625 10 en base 4 : 27 / 4 = 6, reste 3 6 / 4 = 1, reste 2 1 / 4 = 0, reste 1 -> 123 4 0, 5625 x 4 2, 25 x 4 1, 0 x 4 0, 0 Réponse : 123,210000 4 Unité 3: Représentation interne des informations

21 ©Pierre Marchand, 2001 89 3.3 Données numériques 3.3.3 Nombres fractionnaires Conversion décimal-binaire et binaire décimal à laide de la table de lappendice 4.2 du supplément Même principe que pour les entiers. Unité 3: Représentation interne des informations

22 ©Pierre Marchand, 2001 90 3.3 Données numériques 3.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 dopé- rations telles que la multiplication et la division Unité 3: Représentation interne des informations 32 Partie entièrePartie fractionnaire,

23 ©Pierre Marchand, 2001 91 3.3 Données numériques 3.3.3 Nombres fractionnaires Virgule fixe Exemples : 1,0= 00000001,00000000 16 -1,0= FFFFFFFF,00000000 16 0,5= 00000000,80000000 16 -0,5= FFFFFFFF,80000000 16 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

24 ©Pierre Marchand, 2001 92 3.3 Données numériques 3.3.3 Nombres fractionnaires Virgule flottante N = (1) s M B E où :M = mantisse B = base E = exposant s = signe de la mantisse Exemples: 101 10 = 1,01 10 2 - 5 10 = - 101 2 = - 1,01 2 2 5 10 = 101 2 = 5 16 = 0,0101 16 1 Unité 3: Représentation interne des informations

25 ©Pierre Marchand, 2001 93 3.3 Données numériques 3.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 lexposant 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 2 E 1,f Unité 3: Représentation interne des informations 823 E+127fs 32

26 ©Pierre Marchand, 2001 94 3.3 Données numériques 3.3.3 Nombres fractionnaires Virgule flottante Norme IEEE 754 de simple précision Exemple : 1000 10 = 3E8 16 = 1111101000 2 = 1,111101000 2 9 s = 0 car nombre positif E = 9 donc E + 127 = 136 = 10001000 2 M = 1,111101000 donc f =,111101000 quon peut écrire 447A0000 IEEE en groupant les bits 4 par 4 et en les codant en hexadécimal. Unité 3: Représentation interne des informations 0 10001000 11110100000000000000000

27 ©Pierre Marchand, 2001 95 3.3 Données numériques 3.3.3 Nombres fractionnaires Virgule flottante Norme IEEE 754 de simple précision Exemple : Convertir le nombre de simple précision 40500000 IEEE en décimal. s = 0 donc signe = + E + 127 = 128, donc E = 1 M = 1,f = 1,101 N = +1,101 2 2 1 = 11,01 2 2 0 = 3,25 10 Unité 3: Représentation interne des informations 0 10000000 10100000000000000000000

28 ©Pierre Marchand, 2001 96 3.3 Données numériques 3.3.3 Nombres fractionnaires Virgule flottante Norme IEEE 754 de simple précision Exemples : +0 = 00000000 IEEE -0 = 80000000 IEEE +1 = 3F800000 IEEE -1 = BF800000 IEEE +2 = 40000000 IEEE -2 = C0000000 IEEE + = 7F800000 IEEE - = FF800000 IEEE Unité 3: Représentation interne des informations

29 ©Pierre Marchand, 2001 97 3.3 Données numériques 3.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 lexposant 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 1152 E+1023fs 64

30 ©Pierre Marchand, 2001 98 3.3 Données numériques 3.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 00800000 IEEE à 7F7FFFFF IEEE, soit : 1,000000000… x 2 -126 à 1,1111111111… x 2 127 9,4039548 10 -38 à 3,4028235 10 +38. En double précision, elle va de 0010000000000000 IEEE à 7FEFFFFFFFFFFFFF IEEE, soit : 1,0000000000... 2 -1022 à 1,11111111111... 2 1023 2,22407385851 10 -308 à 1,797693134862316 10 308 Unité 3: Représentation interne des informations

31 ©Pierre Marchand, 2001 99 3.3 Données numériques 3.3.3 Nombres fractionnaires Virgule flottante Nombres dénormalisés En simple précision, si lexposant 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

32 ©Pierre Marchand, 2001 100 3.3 Données numériques 3.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 derreur. Unité 3: Représentation interne des informations

33 ©Pierre Marchand, 2001 101 3.3 Données numériques 3.3.3 Nombres fractionnaires Virgule flottante Sources derreur Erreur darrondi 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

34 ©Pierre Marchand, 2001 102 3.3 Données numériques 3.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 lexposant du plus grand des deux. 3. Effectuer laddition ou la soustraction des mantisses 4. Normaliser la mantisse résultante sil y a lieu 5. Replacer le résultat, mantisse et exposant, dans le format IEEE. Unité 3: Représentation interne des informations

35 ©Pierre Marchand, 2001 103 3.3 Données numériques 3.3.3 Nombres fractionnaires Virgule flottante Addition et soustraction Exemple : 40400000 IEEE + 3F000000 IEEE = 0 10000000 10000000000000000... + 0 01111110 00000000000000000... = + 2 128-127 1,100000… + 2 126-127 1,000000... = 1,1 2 1 + 1,0 2 -1 = 1,1 2 1 + 0,01 2 1 = 1,11 2 1 = 0 10000000 11000000000000000000000 = 40600000 IEEE Unité 3: Représentation interne des informations

36 ©Pierre Marchand, 2001 104 3.3 Données numériques 3.3.3 Nombres fractionnaires Virgule flottante Multiplication et division A = a 2 p et B = b 2 q, alors : A B = ab 2 p+q A / B = (a/b) 2 p-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 sil y a lieu 5. Ajuster le signe sil y a lieu 6. Replacer le résultat, signe, mantisse et exposant, dans le format IEEE. Unité 3: Représentation interne des informations

37 ©Pierre Marchand, 2001 105 3.3 Données numériques 3.3.3 Nombres fractionnaires Virgule flottante Multiplication et division Exemple: 40A00000 C0C00000 = 0 10000001 01000000000000000... 1 10000001 10000000000000000… = + 2 129-127 1,01 - 2 129-127 1,1 = - 1,01 2 2 1,1 2 2 = - 1,1110 2 4 = 1 10000011 11100000000000000000000 = C1F00000 IEEE Unité 3: Représentation interne des informations

38 ©Pierre Marchand, 2001 106 3.3 Données numériques 3.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 derreurs. Unité 3: Représentation interne des informations

39 ©Pierre Marchand, 2001 107 3.3 Données numériques 3.3.4 Décimaux codés en binaire décimalBCDexcédent-32 dans 5biquinaire 0000000110001101 00001 1000101000010101 00010 2001001010011001 00100 3001101100100101 01000 4010001110101001 10000 5010110000110010 00001 6011010011000110 00010 7011110101001010 00100 8100010111010010 01000 9100111001100010 10000 Unité 3: Représentation interne des informations

40 ©Pierre Marchand, 2001 108 3.3 Données numériques Conversion 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 (2 16 ). Exemple : Convertir 36 000 000 000 en binaire 1 e étape 36 000 000 000 / 65 536 =549 316, reste 26 624 549 316 / 65 536 = 8, reste 25 028 8 / 65 536 = 0, reste 8 Donc : 36 000 000 000 = 8 x 65536 2 + 25028 x 65536 1 + 26624 Unité 3: Représentation interne des informations

41 ©Pierre Marchand, 2001 109 3.3 Données numériques Conversion rapide des grands nombres décimaux en binaire 2 e étape Comme 65 536 = 256 2, on représente ensuite chacun des termes en base 256. 25 028 / 256 = 97, reste 196 26 624 / 256 = 104, reste 0 Donc : 36 000 000 000 = 8 x 256 4 + 97 x 256 3 + 196 x 256 2 + 104 x 256 1 + 0 x 256 0 Unité 3: Représentation interne des informations

42 ©Pierre Marchand, 2001 110 3.3 Données numériques Conversion rapide des grands nombres décimaux en binaire 3 e étape Comme 256 = 16 2, on représente ensuite chacun des termes en base 16. 97 / 16 = 6, reste 1196 / 16 = 12, reste 4 104 / 16 = 6, reste 80 / 16 = 0, reste 0 Donc 36 000 000 000 = 8 x 16 8 + 6 x 16 7 + 1 x 16 6 + 12 x 16 5 + 4 x 16 4 + 6 x 16 3 + 8 x 16 2 + 0 x 16 1 + 0 x 16 0 Et finalement : 36 000 000 000 = 861C46800 16 Unité 3: Représentation interne des informations


Télécharger ppt "©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."

Présentations similaires


Annonces Google