1 / 42

Objectifs : À la fin de cette unité, - vous saurez comment passer d’une base à l’autre

Unité 3: Représentation interne des informations. 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.

holland
Download Presentation

Objectifs : À la fin de cette unité, - vous saurez comment passer d’une base à l’autre

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Unité 3: Représentation interne des informations • 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; 69

  2. Unité 3: Représentation interne des informations • 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 70

  3. Unité 3: Représentation interne des informations • 3.3 Données numériques • 3.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 71

  4. Unité 3: Représentation interne des informations • 3.3 Données numériques • 3.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 72

  5. Unité 3: Représentation interne des informations • 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 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 73

  6. Unité 3: Représentation interne des informations • 3.3 Données numériques • 3.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 74

  7. Unité 3: Représentation interne des informations • 3.3 Données numériques • 3.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 75

  8. Unité 3: Représentation interne des informations • 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 = 1710 • 1 + 2  1710 = 3510 • 1 + 2  3510 = 7110 • 0 + 2  7110 = 14210 Arithmétique BCD 76

  9. Unité 3: Représentation interne des informations • 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 + 10102 0 = 1 • 1002 + 10102 1 = 11102 • 102 + 10102  11102 = 1000 11102 77

  10. Unité 3: Représentation interne des informations • 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 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. 78

  11. 27 27 / 4 = 6, reste 3 10 6 / 4 = 1, reste 2 1 / 4 = 0, reste 1 27 = 123  10 4 Unité 3: Représentation interne des informations • 3.3 Données numériques • 3.3.1 Entiers positifs ou nuls • Changements de base • Exemples : Convertir 2710 en base 4 : 79

  12. Unité 3: Représentation interne des informations • 3.3 Données numériques • 3.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é 80

  13. Unité 3: Représentation interne des informations • 3.3 Données numériques • 3.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. 81

  14. Unité 3: Représentation interne des informations • 3.3 Données numériques • 3.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 • 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. • 528610 - 409610 = 119010 -> 100016 • 119010 - 102410 = 16610 -> + 40016 • 16610 - 16010 = 610 -> + A016 • 610 - 610 = 0 -> + 616 • = 14A616 82

  15. Unité 3: Représentation interne des informations • 3.3 Données numériques • 3.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. 83

  16. Unité 3: Représentation interne des informations • 3.3 Données numériques • 3.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 ‘3’ ‘2’ ‘7’ 84

  17. Unité 3: Représentation interne des informations • 3.3 Données numériques • 3.3.3 Nombres fractionnaires • Changements de base • NanBn + an-1Bn-1 + … + a1B1+ a0B0+ 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 : 85

  18. Unité 3: Représentation interne des informations • 3.3 Données numériques • 3.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. 86

  19. Unité 3: Représentation interne des informations • 3.3 Données numériques • 3.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 87

  20. Unité 3: Représentation interne des informations • 3.3 Données numériques • 3.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 88

  21. Unité 3: Représentation interne des informations • 3.3 Données numériques • 3.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. 89

  22. Unité 3: Représentation interne des informations • 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 d’opé-rations telles que la multiplication et la division Partie entière Partie fractionnaire , 32 32 90

  23. Unité 3: Représentation interne des informations • 3.3 Données numériques • 3.3.3 Nombres fractionnaires • Virgule fixe • Exemples : 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 91

  24. Unité 3: Représentation interne des informations • 3.3 Données numériques • 3.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 92

  25. Unité 3: Représentation interne des informations • 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 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 s E+127 f 8 23 32 93

  26. Unité 3: Représentation interne des informations • 3.3 Données numériques • 3.3.3 Nombres fractionnaires • Virgule flottante • Norme IEEE 754 de simple précision • Exemple : • 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. 0 10001000 11110100000000000000000 94

  27. Unité 3: Représentation interne des informations • 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 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 • 0 10000000 10100000000000000000000 95

  28. Unité 3: Représentation interne des informations • 3.3 Données numériques • 3.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 96

  29. Unité 3: Représentation interne des informations • 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 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. s E+1023 f 11 52 64 97

  30. Unité 3: Représentation interne des informations • 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 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 98

  31. Unité 3: Représentation interne des informations • 3.3 Données numériques • 3.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. 99

  32. Unité 3: Représentation interne des informations • 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 d’erreur. 100

  33. Unité 3: Représentation interne des informations • 3.3 Données numériques • 3.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. 101

  34. Unité 3: Représentation interne des informations • 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 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. 102

  35. Unité 3: Représentation interne des informations • 3.3 Données numériques • 3.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 103

  36. Unité 3: Représentation interne des informations • 3.3 Données numériques • 3.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. 104

  37. Unité 3: Représentation interne des informations • 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… • = + 2129-127 1,01  - 2129-127 1,1 • = - 1,01  22  1,1  22 = - 1,1110  24 • = 1 10000011 11100000000000000000000 • = C1F00000IEEE 105

  38. Unité 3: Représentation interne des informations • 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 d’erreurs. 106

  39. Unité 3: Représentation interne des informations • 3.3 Données numériques • 3.3.4 Décimaux codés en binaire • décimal BCD excédent-3 2 dans 5 biquinaire • 0 0000 0011 00011 01 00001 • 1 0001 0100 00101 01 00010 • 2 0010 0101 00110 01 00100 • 3 0011 0110 01001 01 01000 • 4 0100 0111 01010 01 10000 • 5 0101 1000 01100 10 00001 • 6 0110 1001 10001 10 00010 • 7 0111 1010 10010 10 00100 • 8 1000 1011 10100 10 01000 • 9 1001 1100 11000 10 10000 107

  40. Unité 3: Représentation interne des informations • 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 (216). • Exemple : Convertir 36 000 000 000 en binaire • 1e é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 655362 + 25028 x 655361 + 26624 108

  41. Unité 3: Représentation interne des informations • 3.3 Données numériques • Conversion rapide des grands nombres décimaux en binaire • 2e étape • Comme 65 536 = 2562, 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 2564 + 97 x 2563 + 196 x 2562 • + 104 x 2561 + 0 x 2560 109

  42. Unité 3: Représentation interne des informations • 3.3 Données numériques • Conversion rapide des grands nombres décimaux en binaire • 3e étape • Comme 256 = 162, on représente ensuite chacun des termes en base 16. • 97 / 16 = 6, reste 1 196 / 16 = 12, reste 4 • 104 / 16 = 6, reste 8 0 / 16 = 0, reste 0 • Donc • 36 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 110

More Related