Représentation numérique de l'information. Séquence 4 : Nombres réels



Documents pareils
Chapitre 10 Arithmétique réelle

Logiciel de Base. I. Représentation des nombres

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

IFT2880 Organisation des ordinateurs et systèmes

Représentation des Nombres

Conversion d un entier. Méthode par soustraction

Informatique Générale

Codage d information. Codage d information : -Définition-

Bases de programmation. Cours 5. Structurer les données

Exemple d implantation de fonction mathématique sur ST240

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS =

Arithmétique réelle. Introduction à l arithmétique flottante La précision des calculs: analyse et améliorations. Valérie Ménissier-Morain

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Représentation d un nombre en machine, erreurs d arrondis

Atelier C TIA Portal CTIA04 : Programmation des automates S7-300 Opérations numériques

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Date : Note /20 : EVALUATION Nom : Prénom : Classe : Traitement sur mots

Architecture de l ordinateur

EBS 204 E C B S. Publication : Novembre 96

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

Introduction à l étude des Corps Finis

Licence Sciences et Technologies Examen janvier 2010

Partie 1. Professeur : Haouati Abdelali. CPGE Lycée Omar Ibn Lkhattab - Meknès haouaticpge@gmail.com

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

V- Manipulations de nombres en binaire

La conversion de données : Convertisseur Analogique Numérique (CAN) Convertisseur Numérique Analogique (CNA)

Introduction à JDBC. Accès aux bases de données en Java

TS 35 Numériser. Activité introductive - Exercice et démarche expérimentale en fin d activité Notions et contenus du programme de Terminale S

UE Programmation Impérative Licence 2ème Année

UE 503 L3 MIAGE. Initiation Réseau et Programmation Web La couche physique. A. Belaïd

Transmission de données. A) Principaux éléments intervenant dans la transmission

Solutions du chapitre 4

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

I- Définitions des signaux.

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Mathématiques appliquées à l informatique

La fonction exponentielle

Base de l'informatique. Généralité et Architecture Le système d'exploitation Les logiciels Le réseau et l'extérieur (WEB)

Utilisation d objets : String et ArrayList

EXERCICES DE REVISIONS MATHEMATIQUES CM2

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Cours: Administration d'une Base de Données

De nombreuses bases de données, qui sont implantées dans des systèmes

EVALUATIONS MI-PARCOURS CM2

Chapitre VI- La validation de la composition.

Chapitre 1 I:\ Soyez courageux!

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Programmation linéaire

Transmission d informations sur le réseau électrique

Théorie et Codage de l Information (IF01) exercices Paul Honeine Université de technologie de Troyes France

UE C avancé cours 1: introduction et révisions

Systèmes de transmission

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C

ALGORITHMIQUE ET PROGRAMMATION En C

ET LO GICIEL D UN S YS T EME IN FORMATIQUE

Chapitre 2. Classes et objets

Rappels Entrées -Sorties

Nombres, mesures et incertitudes en sciences physiques et chimiques. Groupe des Sciences physiques et chimiques de l IGEN

Programmation en Java IUT GEII (MC-II1) 1

Une version javascript sera disponible directement dans le cours prochainement.

SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique


Introduction au langage C

ÉPREUVE COMMUNE DE TIPE Partie D

SQL Limitations Mémoire

Chapitre 13 Numérisation de l information

Projet Matlab : un logiciel de cryptage

TP 1. Prise en main du langage Python

Le Langage De Description De Données(LDD)

Glossaire des nombres

Algorithme. Table des matières

1 Description générale de VISFIELD

Import automatique des places de parking - Handicap.fr

Les opérations binaires

Initiation à LabView : Les exemples d applications :

USTL - Licence ST-A 1ère année Codage de l information TP 1 :

Exercices - Polynômes : corrigé. Opérations sur les polynômes

STAGE IREM 0- Premiers pas en Python

Recherche dans un tableau

Algorithmique et Programmation, IMA

Fonctions de la couche physique

Claude Delannoy. 3 e édition C++

Cryptographie et fonctions à sens unique

1 Savoirs fondamentaux

Calcul scientifique précis et efficace sur le processeur CELL

TP 1 : 1 Calculs en binaire, octal et hexadécimal

Cours Informatique 1. Monsieur SADOUNI Salheddine

Export vers le format WAV dans ArtemiS SUITE

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

LA BATTERIE DU PORTABLE

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

Chapitre 10. Les interfaces Comparable et Comparator 1

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

Objectifs. Clustering. Principe. Applications. Applications. Cartes de crédits. Remarques. Biologie, Génomique

Annexe : La Programmation Informatique

Transcription:

Représentation numérique de l'information Séquence 4 : Nombres réels Xavier OUVRARD Lycée International Ferney-Voltaire IREM de Lyon Cours ISN 2012-13

Codage des nombres à virgule Un nombre décimal est composé d'une partie entière et d'une partie fractionnaire après la virgule. En base B, ce nombre X s'écrit : (X) B = a n a n-1...a 0,b 1...b m Il se convertit en décimal en : (X) 10 = a n B n +...+a 0 B 0,b 1 B -1 +...+b m B -m.

Codage des nombres à virgule (2) Exemples : 128,75 = 1 x 102 + 2 x 10 1 + 8 x 10 0 + 7 x 10-1 + 5 x 10-2. (101,01) 2 = 1 x 2 2 + 1 x 2 0 + 1 x 2-2 = 1 x 4 + 1 + 0,25 = 5,25 (AE,1F) 16 = 10 x 16 1 + 14 x 16 0 +1 x 16-1 +15 x 16-2 = 160 + 14 + 0,0625 + 0,5859375 = 174,12109375

Conversion des nombres à virgule en base B Cela n'est faisable le plus souvent que de manière approchée, il faudra donc donner la précision voulue. Pour la partie entière, on fait comme pour les entiers Pour la partie décimale : On multiplie la partie entière par B On note la partie entière obtenue On recommence avec la partie décimale restante On s'arrête quand la partie décimale est nulle ou quand la précision souhaitée est atteinte La partie décimale est la concaténation des parties entières obtenues dans l'ordre de leur calcul.

Conversion des nombres à virgule en base B Exemple : conversion de 28,8625 en binaire Conversion de 28 : (11100) 2. Conversion de 0,8625 : 0,8625 x 2 = 1,725 = 1 + 0,725 0,725 x 2 = 1,45 = 1 + 0,45 0,45 x 2 = 0,9 = 0 + 0,9 0,9 x 2 = 1,8 = 1 + 0,8 0,8 x 2 = 1,6 = 1 + 0,6 0,6 x 2 = 1,2 = 1 + 0,2 0,2 x 2 = 0,4 = 0 + 0,4 0,4 x 2 = 0,8 = 0 + 0,8 28,8625 peut être représenté par (11100,11011100...) 2

Conversion des nombres à virgule en base B La représentation précédente ne permet pas de représenter des nombres très petitement proche de zéro ou très grands.

Représentation en virgule fixe Principe : on représente un réel par un nombre entier Utilisation d'un facteur d'échelle F implicite Représenter un nombre entier en base b : on sait faire Soit x un réel représenté par X, nombre entier en base b sur n chiffres X = (a n-1...a 0 ) B x=x.b -F = (a n-1...a F,a F-1...a 0 ) b F chiffres

Représentation en virgule fixe Encore utilisé pour des raisons de rapidité, les opérations en virgule fixe étant des opérations entières Facteur de mise à l'échelle est implicite : Suppose connaissance de l'ordre de grandeur des données par le développeur Engendre des difficultés de développement Les nombres représentés ne doivent pas être d'ordres de grandeurs très différents

Codage des décimaux en virgule flottante Un nombre décimal X est représenté en base b par : s : signe du nombre (-1) s M x b E M : mantisse, écrite en virgule fixe en base b, sur p chiffres, de type x 0 x 1...x i,x i+1..x p-1 où x i, pour i entre 0 et p-1, est entre 0 et b-1 E : exposant Le nombre flottant X est alors dit de précision p.

Codage des décimaux en virgule flottante b E correspond au facteur de mise à l'échelle => il est explicite La représentation n'est pas unique. Par exemple, avec b=10, et en précision 4, le nombre 2,617 peut se présenter de différentes manières : 2617 x 10-3 261,7 x 10-2 26,17 x 10-1 2,617 x 10 0,2617 x 10 1 => Nécessité de normaliser l'écriture pour qu'elle devienne unique => Rôle de la norme IEEE754, publiée en 1985 et révisée en 2008

Codage en virgule flottante La norme IEEE 754-2008 définit 3 formats de base : Simple précision (float en java) Double précision (double en java) Quadruple précision Format Taille Précision E min E max Valeur max Simple 32 23 bits + 1-126 +127 3.403...10 38 Double 64 52 bits + 1-1022 +1023 1.798...10 308 Quadruple 128 112 bits + 1-16382 16383 1.190...10 4932 Taille mantisse équivaut à la précision de p bits Taille exposant : w bits E max = 2 w-1 1 et E min = 1 - E max

Codage en virgule flottante Problème : même avec position de la virgule fixée dans la mantisse d'un nombre flottant, un nombre peut avoir plusieurs représentations : 2,190 x 10 1 et 0,219 x 10 2. La mantisse s'écrit : M = m 0 m 1...m p-1 pour une précision de p bits. Pour pallier au problème de la non unicité, on normalise la mantisse, i.e. m 0 0. Représentation unique (pour les valeurs non nulles) Représentation qui minimise l'exposant En base 2, m 0 = 1 => m 0 n'est pas stocké en mémoire =>bit implicite=> utilisé pour le signe

Nombres flottants normalisés en mémoire On code sur N bits, avec une précision p S Exposant Partie fractionnaire mantisse 1 bit w bits p-1 bits Se souvenir que la partie entière de la mantisse en base 2 correspond au bit implicite, qui vaut 1 L'exposant peut être négatif => comparaison est alors difficile => l'exposant est encodé en utilisant une représentation biaisée E + E max. Pas de valeur codable entre 0 et 2 Emin.

Exemple Trouver le nombre à virgule correspondant à : 1100010001101001001111000011100000000000000000000000000000000000 => codage sur 64 bits Signe 1 bit : 1, le nombre est donc négatif Exposant codé sur 11 bits : 10001000110, E codé = 1094, donc E réel = E codé E max = 1094-1023 = 71 Mantisse codée sur 53-1 = 52 bits (et en ajoutant le bit implicite) M = 1,1001001111000011100000000000000000000000000000000000 = 1 + 1/2 + 1/2 4 +1/2 7 +1/2 8 +1/2 9 +1/2 10 +1/2 15 +1/2 16 +1/2 17 = 206 727/131072 Le nombre représenté est -206727/131072 x 2 71 = -3,724... x 10 21

Sources Représentation des nombres, arithmétique flottante, norme IEEE 754, Guillaume Revy, Université de Perpignan ISN en Terminale S, Gilles Dowek Codage des nombres, Eric Cariou Université de Pau et des Pays de l'adour Arithmétique flottante Vincent Lefèvre, Paul Zimmermann, INRIA http://blog.netinfluence.com/2009/09/24/comprendre-les-nom

Exemple de la simple précision En simple précision, on code sur 32 bits S Exposant E codé Partie fractionnaire mantisse M codé 31 30...23 22...0 Si 0 E codé <255 et M codé 0, cela représente le nombre (-1) s x1,m codé x2 Ecodé-127 Valeurs particulières : + infini : s=0 E codé =255 M codé =0 0 11111111 000000000000000000000000 - infini : s=1 E codé =255 M codé =0 1 11111111 000000000000000000000000 NaN, Not a number : E codé = 255 M codé 0 Zéro : s=±1 E codé =0 M codé =0