Cours 2 : Représentation des nombres réels

Slides:



Advertisements
Présentations similaires
Chapitre 4 La représentation des nombres.
Advertisements

Chapitre 4b La représentation des nombres.
L'image: Le codage des images BacPro SEN Lycée Condorcet.
I. Les différentes bases utilisées en numérique. La base d écimale, base de 10 ( ou codage de 10) qui utilise 10 symboles: 0 ; 1 ;2 ; 3 ; 4 ; 5 ; 6; 7.
1 Chapitre 2 La numération binaire. 2 Chapitre 2 : La numération binaire Introduction 1 - Le système binaire 2 - La conversion des nombres entiers 2.1.
Chapitre 4 la représentation des nombres. Chapitre 4 : La représentation des nombres 1 - Introduction 1.1 – Notion de mot 2 - La représentation des entiers.
Cahier de réussite Mathématiques. Voici ton cahier de réussite. Il te servira à visualiser tes progrès tout au long de l’année. Il te permettra également.
A1 : SYSTEMES DE NUMÉRATION ET CODES. PLAN A- Systèmes de numération 1- Système décimal 2- Système binaire 3- Système hexadécimal 4- Conversion des nombres.
Progression numération CM Séquences Socle commun Compétences du palier 2 ProgrammesObjectifs d’apprentissage N1 Distinguer chiffre et nombre.
Synthèse TP 2 Codeblock 1 Les objectifs de ce tp sont :
Information, Calcul, Communication
Par Sacha (11 ans - 6ème) - Le 9 mai 2017
Multiplier, diviser des nombres relatifs
Pierre Joli Cours de Mathématique Pierre Joli
L’opération de multiplication
Architecture de machines Codage des informations
Information, Calcul, Communication
Représentation des nombres réels
Nombres réels Représentation et traitement des informations
Quelques Termes INFORMATIQUE ? ORDINATEUR ( Système Informatique)?
Information, Calcul, Communication
CHAPITRE 3 Calcul numérique et puissances
PO M Multiplication A Addition D M A S = = 11 6
Logique Combinatoire.
Information, Calcul, Communication
Cahier de réussite Mathématiques.
Nombres entiers non signés/signés
Opérateurs Toute donnée informatique est stockée en mémoire sous la forme d'une combinaison de bits (mot machine). Les opérateurs bits permettent de modifier.
Additionner des nombres entiers
Représentation de l’information en binaire:
Collecte de données CAPI
La courbe ci-contre représente
1°) Un nombre y est-il associé à 3, et si oui lequel ?
Progressions calcul CM
Représentation de l'information en binaire:
Précision d'une mesure et chiffres significatifs
+ et – sur les relatifs Menu général.
Programmation Numération Compétences visées Période
Aujourd'hui, nous allons apprendre à soustraire des nombres décimaux.
Format des fichiers TIFF
ADDITION ET SOUSTRACTION DE RELATIFS 1) Addition 2) Soustraction 4) Distance de deux points 3) Calculs.
Codification et Représentation de l’information
Deux objectifs Réactiver nos connaissances dans le domaine du calcul additif : les structures additives ; les différents types de calculs. Réactiver nos.
Codage et Représentation de l’Information
Arrondir des nombres.
Le système binaire Table des matières : -Présentation du binaire
Incertitudes.
Les formats Stage – Semaine 4 1. Formats de fichiers  Qu’est-ce que le codage de données ?  Qu’est-ce qu’un format de fichier ? 2.
Calcul Scientifique Initiation à SCILB
ACP Analyse en Composantes Principales
Calculs des incertitudes Lundi 30 Avril 2018 Master de Management de la Qualité, de la Sécurité et de l’Environnement.
Prof. MOHAMED وزارة التربية الوطنية والتعليم العالي وتكوين الأطر والبحث العلمي 1.
CHAPITRE 3 Calcul numérique et puissances
Multiplier des décimaux
Révision du format des données
NUMERATION et REPRESENTATION DES NOMBRES
B.Shishedjiev - Informatique
«  Numération décimale, fractions et décimaux : continuités et ruptures dans la construction du nombre » échanges et analyse de pratiques autour du QSort.
Sylvie DELAËT 2002 Architecture des machines Bienvenus en Amphi d’Architecture des Machines.
Formats Stage – Semaine 4.
1 Architecture des ordinateurs Généralités. 2 Définition Informatique = Information + Automatique Ce terme a été introduit en France. Il est très répandu.
Ceintures de calcul Compétences maternelle Compétences cycle 2
Passage primaire-secondaire
Chapitre 2 : Représentation de l’information dans la machine Introduction Représentation des nombres négatifs –Signe / valeur absolue –Complément à 1 –Complément.
Chapitre 10 : Division décimale
GEOMETRIE VECTORIELLE
Histoire d’un juge Comment l’histoire d’un juge aux jeux olympiques nous permet de comprendre ce que sont les nombres décimaux…
Système de Numération : Décimal, Binaire, Octal et Hexadécimal
Codification et représentation de l’information Enseignant: Mahseur mohammed Groupe FB: mi2016ua1 Chaine YT: Cours informatique.
DONNÉE DE BASE QM Manuel de formation. Agenda 2  Introduction  Objectif de la formation  Données de base QM: Caractéristique de contrôle Catalogue.
Transcription de la présentation:

Cours 2 : Représentation des nombres réels Représentation des nombres & Conséquences Cours 2 : Représentation des nombres réels & Conséquences A la fin de ce cours, vous devez être capable de : - coder un réel en simple ou double précision, - décrire les limites de la représentation des réels sur n bits. Codage de 09,2015 en double précision

1 Représentation de la partie décimale d’un nombre En notation décimale, les chiffres à gauche de la virgule représentent des entiers, des dizaines, des centaines …, ceux à droite de la virgule, des dixièmes, des centièmes, des millièmes… 3,14510 = 3 . 100 + 1 . 10-1 + 4 .10-2 + 5 . 10-3 Le codage de la partie entière (3 dans l’exemple précédent) ne pose pas de problèmes particuliers (voir cours précédent). Pour la partie décimale 0,145, il est nécessaire d’adapter la procédure.

1 Représentation de la partie décimale d’un nombre Codage de la partie décimale L’expression de la partie décimale dans une nouvelle base B est obtenue par multiplication successive par B de la partie décimale du résultat précédent, l’unité obtenue correspond à un élément de la décomposition. On procède ainsi de suite jusqu’à ce qu’il n’y ait plus de partie décimale ou que le nombre de bits obtenus corresponde à la taille du mot mémoire dans lequel on stocke cette partie. Méthode 2 Méthode 1 Exemple : passage de 0,145 en base 2 + Pratique !! - imposer le nombre n de chiffres significatifs souhaités, - multiplier la partie décimale par Bn, puis coder le résultat de la partie entière. 0,145 × 2=0,29 0,29 × 2=0,58 0,58 × 2=1,16 0,16 × 2=0,32 0,32 × 2=0,64 Exemple : codage de 0,145 sur 8 bits : 0,145 × 28 ≈ 37,12 or (37)10 = (00100101)2 donc 0,145 ≈ (0,00100101)2   0,64 × 2=1,28 ... ≈ donc 0,145 = (0,001001)2

1 Représentation de la partie décimale d’un nombre Codage de la partie décimale Remarque : la décomposition de la partie décimale peut conduire à une suite infinie de termes. Par exemple 0,3 0,3 × 2= 0,6 0,6 × 2= 1,2 0,2 × 2= 0,4 0,4 × 2= 0,8 On écrira donc 0,3 ≈ (0,01001 1001)2 0,8 × 2= 1,6 0,6 × 2= 1,2 ... Remarque : le codage sur un nombre n de bits fixes implique un nombre fini de valeurs. Les calculs seront nécessairement arrondis et comporteront des erreurs d’arrondi et de précision.

1 Représentation de la partie décimale d’un nombre Nous avons vu comment écrire un réel dans n’importe quelle base et notamment la base 2. En plus des erreurs d’arrondi, le problème est que cette écriture ne peut être utilisée dans un ordinateur en raison de la présence la virgule. De plus, cette méthode ne permet pas de représenter des nombres très grands ou très petits comme le nombre d’Avogadro NA = 6,0221413.. x 1023 mol-1 la constante de Planck h = 6,62606957 x 10-34 J.s Pour remédier à ce problème, la notation scientifique pour les nombres est adoptée. Le principe du codage des réels en mémoire est basé sur cette représentation dite à virgule flottante (float). (11,00100101)2 se mettra sous la forme 1,100100101 x 21

termes après la virgule, 1 Représentation de la partie décimale d’un nombre (11,00100101)2 Représentation dite à virgule flottante (float) se mettra sous la forme Tout nombre sera ainsi représenté par : +1,100100101 x 21 son signe, ici +, sa mantisse réduite termes après la virgule, ici 100100101 son exposant, ici 1 norme IEEE 754 – Institute of Electrical and Electronics Engineers

Les exposants peuvent ainsi aller de -126 à +127 en simple précision. 2 Représentation d’un nombre réel NORME IEEE 754 (virgule flottante) – type float Codage d’un nombre réel selon la norme IEEE En simple précision, cette norme se propose de coder le nombre sur 32 bits et définit trois composantes : - le signe est représenté par un seul bit, bit de poids fort 0 si positif, 1 si négatif - l'exposant est codé sur les 8 bits consécutifs au signe, - la mantisse (dite réduite car seuls les bits situés après la virgule sont retenus) sur les 23 bits restants. Important  - l'exposant 00000000 est réservé pour 0 et nombres dénormalisés (nombre très petits d’exposants incodables), Conversion par excès Les exposants peuvent ainsi aller de -126 à +127 en simple précision. - l'exposant 11111111 est réservé ∞ et nombre NaN - pour prendre en compte les exposants négatifs, on rajoute 127 soit (01111111)2 à l'exposant

2 Représentation d’un nombre réel NORME IEEE 754 (virgule flottante) – type float Formule d'expression des nombres réels (-1)S x 2(E - 127) x ( 1 + M ) S est le bit de signe (avec -10 = 1), E est l'exposant codé auquel on doit bien soustraire 127 pour obtenir l’exposant réel, M est la mantisse correspondant à la partie fractionnaire et qui est ajoutée à 1 pour effectuer le calcul Formule d'expression des nombres réels dénormalisés (-1)S x 2(E - 127+1) x ( M )

2 Représentation d’un nombre réel NORME IEEE 754 (virgule flottante) – type float Exemple avec un réel positif coder 525,5 en simple précision sa représentation en base 2 est : 1000001101,1 La représentation du nombre 525,5 en binaire avec la norme IEEE 754 en normalisant, on trouve : 1,0000011011 x 29 0 1000 1000 00000110110000000000000 en regroupant les quartets : 0100 0100 0000 0011 0110 0000 0000 0000 ajout de 127 à l'exposant qui vaut 9 ce qui donne 136, soit en base 2 : 10001000 La mantisse est composée de la partie décimale de 525,5 en base 2 normalisée, c'est-à-dire 0000011011 ou 0x44036000 en hexadécimal codée sur 23 bits, il est nécessaire d'ajouter des zéros pour la compléter : 00000110110000000000000

Exemple avec un réel négatif 2 Représentation d’un nombre réel NORME IEEE 754 (virgule flottante) – type float Exemple avec un réel négatif coder -0,625 en simple précision sa représentation en base 2 est : 0,101 La représentation du nombre -0,625 en binaire avec la norme IEEE en normalisant, on trouve : 1,01 x 2-1 1 0111 1110 01000000000000000000000 en regroupant les quartets : 1011 1111 0010 0000 0000 0000 0000 0000 ajout de 127 à l'exposant qui vaut -1 ce qui donne 126, soit en base 2 : 01111110 La mantisse sur 23 bits est 01000000000000000000000 ou 0xBF200000 en hexadécimal

2 Représentation d’un nombre réel NORME IEEE 754 (virgule flottante) – type float nombre d’Avogadro : NA = 6,0221413.. x 1023 mol-1 constante de Planck : h = 6,62606957 x 10-34 J.s Pratique !!! http://www.binaryconvert.com/convert_float.html

2 Représentation d’un nombre réel NORME IEEE 754 (virgule flottante) – type float Notions sur les précisions des formats de codage Sur 32 bits - simple précision le plus petit écart entre deux nombres, supérieurs à 1, est de 2−23 ≈ 1,2 × 10−7, le chiffre suivant immédiatement 1 est 1,000 000 119 209 29. Entre les deux, il n’y a rien... le plus petit nombre est ± 2−126-23 ≈ ± 1,40129 × 10−45, le plus grand nombre est ± 1,11111111111111111111111 × 2127 ≈ ± 3,4 × 1038. décalage égal à 211−1 − 1 = 1023 Sur 64 bits – double précision le plus petit écart entre deux nombres, supérieurs à 1, est de 2−52 ≈ 2,2 × 10−16, Temps de calcul plus long espace de stockage plus important le plus petit nombre est ± 2−1022-52 ≈ ± 4,94065 × 10−324, le plus grand nombre est ±1.11111111111111111... × 21023 ≈ ±1,8 × 10308.

3 Opérations Pour réaliser les opérations sur la représentation des nombres réels, il faut : Pour une addition / soustraction : effectuer l’opération sur les mantisses en pensant à décaler les représentations du nombre nécessaire de bits pour prendre en compte les exposants différents, modifier le résultat pour être sous la bonne forme. Pour une multiplication / division : réaliser l’opération multiplication ou division sur les mantisses et définir la nouvelle mantisse car le résultat peut être supérieur à 2 ou inférieur à 1, additionner (pour la multiplication) ou soustraire (pour la division) les exposants. et dans tous les cas, vérifier le non dépassement de capacité.

Les erreurs d’arrondis font perdre l’associativité à l’addition 3 Opérations Une des conséquences de la limitation de la représentation est que les opérations ne sont plus associatives. Explication : supposons pour simplifier que les réels soient stockés avec 3 chiffres significatifs et arrondis au plus proche >>> a=1.23 >>> b=4.56 >>> c=7.89 >>> (a+b)*c==a*c+b*c False Prenons x = 8,22 = 0,822.10 y = 0,00317 = 0,317.10-2 z = 0,00432 = 0,432.10-2 On veut calculer la somme x + y + z (x + y) + z donne x + y = 8,22317 ≈ 0,822.10 (x + y) + z ≈ 8,22432 ≈ 0,822.10 Les erreurs d’arrondis font perdre l’associativité à l’addition x + (y + z) donne y + z = 0,00749 ≈ 0,749.10-2 x + (y + z) ≈ 8,22749 ≈ 0,823.10 Exercice : effectuer l’addition de 0,75 avec 0,85 en représentation flottante sur 16 bits (signe codé sur 1 bit, exposant codé sur 5 bits avec décalage par excès de 15, mantisse réduite codée sur 10 bits) Commentaires …

3 Opérations Phénomène de compensation Lorsque l’on effectue des soustractions entre des nombres de valeurs très proches, il peut y avoir des pertes importantes de précisions Exemple : on veut résoudre x2 – 1634.x + 2 = 0 en effectuant les calculs avec 10 chiffres significatifs. On obtient En modifiant l’algorithme numérique utilisé, on peut compenser les effet d’arrondi Δ = 667487, √Δ≈ 816,9987760, x1 = 817 + √Δ = 1633,998776, x2 = 817 - √Δ = 0,0012240. On a donc une perte de 2 chiffres significatifs sur la valeur de x2 ! Pour compenser cette erreur d’arrondi, on peut remarquer que x1.x2 = 2, donc : x2 = 2 / x1 ≈ 0,001223991…

4 Notion de mode d’arrondi & Problèmes de précision , 4 Notion de mode d’arrondi & Problèmes de précision Malgré les capacités des ordinateurs, le codage des nombres réels nécessite l’utilisation d’arrondis. En effet tous les nombres réels ne pourront pas être codés exactement sur n bits. De plus, les nombres ne sont pas également espacés dans l’ensemble des nombres flottants représentables. positions des premiers nombres flottants sur l’axe des réels positifs norme IEEE 754, 4 modes d’arrondis : Soient et tels que et l’arrondi vers 0 l’arrondi au plus près on représente alors par ou en fonction de mode d’arrondi retenu l’arrondi vers l’arrondi vers

Pour les très petits nombres De plus, les nombres ne sont pas également espacés dans l’ensemble des nombres flottants représentables. http://www.binaryconvert.com/convert_float.html Pour les très petits nombres Écart de 1.40129846432481707092372958329.10-45 1.40129846432481707092372958329E-45 2.80259692864963414184745916658E-45 Pour les petits nombres Écart de 1,1920928955078125.10-7 1 1.00000011920928955078125

Pour les très petits nombres De plus, les nombres ne sont pas également espacés dans l’ensemble des nombres flottants représentables. http://www.binaryconvert.com/convert_float.html Pour les très petits nombres Écart de 1.40129846432481707092372958329.10-45 Pour les petits nombres Écart de 1,1920928955078125.10-7 Pour les grands nombres Écart de 0.000000256. 109 = 256 ! 3.0E9 3.000000256E9 Pour les très grands nombres Écart de 2.2824096…. 1031 !!! 1.70141183460469231731687303716E38 1.70141203742878835383357727663E38

4 Notion de mode d’arrondi & Problèmes de précision Remarque : cet arrondi s’effectue après chaque entrée de données et après chaque opération arithmétique élémentaire, si bien que les erreurs d’arrondis peuvent s’accumuler ! Tout résultat informatique est donc par codage entaché d’erreur, on a donc : avec ea l’erreur absolue 1,23456 – 1,23449 ≠ 7.10-5 mais 1,23456 – 1,23449 = 7,00000000000145.10-5 ! avec er l’erreur relative En simplifiant, on peut remarquer que : Test a == b ? Test expr == 0 ? les additions / soustractions ajoutent les erreurs absolues, les multiplications / divisions ajoutent les erreurs relatives, il peut y avoir de grandes erreurs même sur un petit nombre de calcul cancellation

4 Notion de mode d’arrondi & Problèmes de précision

5 Représentation d’autres informations 5.1 Caractères Un code binaire est associé à chaque caractère Il existe plusieurs codages : - ASCII (1961) qui définit 128 caractères et est codé sur 7 bits (voir tableau ci-dessous). Les ordinateurs travaillant sur des octets, des versions étendus ont été proposées,

5 Représentation d’autres informations 5.1 Caractères Un code binaire est associé à chaque caractère Il existe plusieurs codages : - ASCII (1961) qui définit 128 caractères et est codé sur 7 bits (voir tableau ci-dessous). Les ordinateurs travaillant sur des octets, des versions étendus ont été proposées, - ISO 8859 (1986) définit 15 jeux de 256 caractères codé sur 1 octet (voir tableau page suivante). Ce sont des extensions du code ASCII pour prendre en compte les caractères spéciaux des différentes langues,

5 Représentation d’autres informations 5.1 Caractères Un code binaire est associé à chaque caractère Il existe plusieurs codages : - ASCII (1961) qui définit 128 caractères et est codé sur 7 bits (voir tableau ci-dessous). Les ordinateurs travaillant sur des octets, des versions étendus ont été proposées, - ISO 8859 (1986) définit 15 jeux de 256 caractères codé sur 1 octet (voir tableau page suivante). Ce sont des extensions du code ASCII pour prendre en compte les caractères spéciaux des différentes langues, - Unicode (1991) et UTF8 (1993) définissent environ 245 000 caractères mais peuvent en contenir plus d’un million. Il n’y a plus de relation directe entre le codage d’un caractère et son espace mémoire. Suivant la version de la norme choisie le nombre de bits nécessaire à la représentation peut varier fortement.

analogique/numérique 5 Représentation d’autres informations 5.2 Signaux temporels Les signaux temporels ne peuvent être représentés que de façon discrète, Signal initial Discrétisation temporelle Codage des valeurs Chaque point peut être représenté sous la forme d’un entier ou d’un flottant codé et est stocké en mémoire dans un tableau. conversion analogique/numérique CAN

5 Représentation d’autres informations 5.3 Images (matricielles) Les images sont stockées et affichées sous forme d’un tableau (d’où le nom image matricielle) de pixels (« picture element ») colorés. On utilise aussi le terme de carte de point (« bitmap »). Le codage de chaque pixel peut être réalisé en : couleur RGB : composante R G B stockée sur 4, 8 ou 16 bits niveau de gris : 4, 8 ou 16 bits par pixel noir et blanc : 1 bit par pixel L’image est ensuite généralement compressée, ce qui donne les différents types de fichiers connus : bmp, raw, tiff, jpeg …