Cours 3 2. Représentation et traitement des informations Le matériel

Slides:



Advertisements
Présentations similaires
CHAftITREI ARCHITECTURE de BASE. Modèle de Von Neumann Langage d’assemblage1 John Von Neumann est à l'origine d'un modèle de machine universelle de traitement.
Advertisements

Chapitre 3 La numération octale et hexadécimale. Chapitre 3 : La numération octale et hexadécimale 1 - Introduction 2 - Le système Octal Définition.
Évaluation formative La tension électrique Commencer l’exercice Appuyer sur la touche F5 du clavier pour lancer le diaporama.
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.
Enseigner l’arithmétique en série L Réflexions sur les contenus et les exigences.
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.
Chiffres significatifs, incertitudes et précision des instruments Laboratoire, A-08.
1 Programmation en C++ IO en C++/SL ● Standard Library ● Types, objets pour IO ● L'entrée de clavier ● Sortie à l'écran ● Fichiers.
Département Informatique Représentation de l’information Laurent JEANPIERRE D’après le cours de Pascal FOUGERAY IUT de CAEN – Campus 3.
1er partie : Les lois du courant continu
annuités, mensualités remboursements constants VPM pendant une période ininterrompue
JAVA.
Utilisation de Windows
Information, Calcul, Communication
LES TABLEAUX EN JAVA.
Représentation des nombres réels
Nombres réels Représentation et traitement des informations
Information, Calcul, Communication
Quel est le calcul prioritaire ? Y-a-t-il des parenthèses ?
Algorithme et programmation
Cours 2 : Représentation des nombres réels
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.
Représentation de l’information en binaire:
Métrologie Document de reference : “Incertitude en Science de la Nature” Cours : 360-ESZ-03 “Logiciels appliqués en sciences” La métrologie est la « science.
Lois fondamentales de l'algèbre de Boole
Algorithmique demander jeu du pendu.
Ajouter le code dans une page html
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Représentation de l'information en binaire:
Les opérations sur les nombres
SIF-1053 Architecture de ordinateurs
Plan du cours Introduction : création de circuits
la conversion des nombres décimaux
Bases de programmation en Python
Architecture de machines Le microprocesseur
Principes de programmation (suite)
Fonctions logiques et algèbre booléenne
Algorithmique & Langage C
Égalité et priorité de calculs
Codification et Représentation de l’information
Codage et Représentation de l’Information
Régularité et algèbre 3.1 L’élève doit pouvoir explorer des relations : a) à partir de suites non numériques à motif croissant impliquant les notions d’aire.
Représentation binaire
Algorithmique & Langage C IUT GEII S1 Notes de cours (deuxième partie)
Création Et Modification De La Structure De La Base De Données
Programmation en C++ C++ de base
PROGRAMMATION ET ENSEIGNEMENT
Chapitre 3 : Caractéristiques de tendance centrale
Révision du format des données
NUMERATION et REPRESENTATION DES NOMBRES
B.Shishedjiev - Informatique
Difficultés d’apprentissage
Semaine #2 INF130 par Frédérick Henri.
03- Evaluation Access 2003 Cette évaluation comporte des QCM (1 seule réponse) et des Zones à déterminer dans des copies d’écran.
Codage de l’information
Sylvie DELAËT 2002 Architecture des machines Bienvenus en Amphi d’Architecture des Machines.
Reconnaissance de formes: lettres/chiffres
1°) Un nombre y est-il associé à 3, et si oui lequel ?
Outil de description d’une fonction logique:
Chapitre 8 : Multiplication
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.
Programmation Scratch
Opérateurs et fonctions arithmétiques Opérateurs de relation Opérateurs logiques Cours 02.
Introduction à L’Informatique
Introduction à l'Informatique
Python Nicolas THIBAULT
Codification et représentation de l’information Enseignant: Mahseur mohammed Groupe FB: mi2016ua1 Chaine YT: Cours informatique.
PROJET R.A.N. LES FRACTIONS.
La loi des signes.
Séquence 1:Analyse du système d’information comptable
Transcription de la présentation:

Cours 3 2. Représentation et traitement des informations Le matériel 11/09/2018 2. Représentation et traitement des informations Représentation des nombres réels Opérations sur les nombres réels Fonctions logiques et algèbre booléenne Opérations sur les bits Travail pratique #1 Epsilon d’une machine Propagation des erreurs Le matériel Chapitre 2 CSA Synthèse du professeur sif-1053

Représentation en virgule flottante 11/09/2018 La norme IEEE 754 Établi en 1985 comme norme uniforme de l’arithmétique en point flottant Avant, plusieurs formats existaient Implémenté sur la plupart des CPUs Représentation des réels courts (32 bits) selon la norme de l’IEEE 754 S Caractéristique Mantisse 31 30 23 22 0 sif-1053

Représentation en virgule flottante 11/09/2018 Représentation des réels longs (64 bits) selon la norme de l’IEEE 754 S Caractéristique Mantisse 63 62 52 51 0 sif-1053

Représentation en virgule flottante 11/09/2018 Un réel court est dit normalisé quand: Condition C  000…0 et C  111…1 Exposant est codé sous forme d’excédent  E = C – Bias => C = E + Bias C : valeur unsigned Bias : valeur du bias ou de l’excédent Simple précision: 127 (C: 1…254, E: -126…127) Double précision: 1023 (C: 1…2046, E: -1022…1023) En général: Bias = 2m-1 - 1, ou m est le nombre de bits de la caractéristique Mantisse codé avec un 1 implicite  M = 1.xxx…x2  xxx…x: bits de la partie fractionnaire Minimum quand 000…0 (M = 1.0) Maximum quand 111…1 (M = 2.0 – ) Le bit implicite n’est pas storé en mémoire sif-1053

Représentation en virgule flottante 11/09/2018 Un réel court normalisé en virgule flottante (S,C,M) a sa valeur décimale N donnée par S: bit de signe C: caractéristique M: mantisse sif-1053

Représentation en virgule flottante 11/09/2018 Représentation sous forme d’un réel court du nombre 87.125 Après normalisation sif-1053

Représentation en virgule flottante 11/09/2018 Représentation sous forme d’un réel court du nombre 87.125 Mantisse avec le 1 implicite Exposant Mantisse entreposée Caractéristique sif-1053

Représentation en virgule flottante 11/09/2018 Représentation sous forme d’un réel court du nombre 87.125 10000101 01011100100000000000000 sif-1053

Représentation en virgule flottante 11/09/2018 Un réel court est dit dénormalisé quand: Condition C = 000…0 Valeur E = -Bias +1 M = 0.xxx…x2 Cas C = 000…0, M = 000…0 Représente la valeur 0 Valeurs +0 et –0 possibles C = 000…0, M  000…0 Nombres très proches de 0.0 Perte de précision plus le nombre devient petit Underflow graduel sif-1053

Représentation en virgule flottante 11/09/2018 Valeurs spéciales Condition C = 111…1 Cas C = 111…1, M = 000…0 Représente (infinity) Opération qui donne un débordement Autant positif que négatif Ex: 1.0/0.0 = 1.0/0.0 = +, 1.0/0.0 =  C = 111…1, M  000…0 Not-a-Number (NaN) Représente les cas ou aucune valeur numérique ne peut être déterminée Ex: sqrt(–1),  sif-1053

Représentation en virgule flottante 11/09/2018 Sommaire de l’encodage des nombres réels sif-1053

Représentation en virgule flottante 11/09/2018 Sommaire de l’encodage des nombres réels sif-1053

Représentation en virgule flottante 11/09/2018 Sommaire de l’encodage des nombres réels sif-1053

Représentation en virgule flottante 11/09/2018 Sommaire de l’encodage des nombres réels sif-1053

Opérations en virgule flottante 11/09/2018 Approche conceptuelle Calculer en premier le résultat exacte Convertir le résultat dans la représentation appropriée Possibilité de débordement si l’exposant est trop gros Possibilité d’arrondi pour cadrer dans la mantisse M Type d’arrondi (exemple en $) $1.40 $1.60 $1.50 $2.50 –$1.50 Round toward Zero $1.00 $1.00 $1.00 $2.00 –$1.00 Round down (-) $1.00 $1.00 $1.00 $2.00 –$2.00 Round up (+) $2.00 $2.00 $2.00 $3.00 –$1.00 Nearest (default) $1.00 $2.00 $2.00 $2.00 –$2.00 sif-1053

Round-To-Nearest Mode d’arrondi par défaut 11/09/2018 Mode d’arrondi par défaut Les autres modes sont statistiquement biasés Des sommes de nombres positifs peuvent être sur- ou sous- estimées Application à d’autres positions décimales Quand nous sommes exactement entre deux valeurs possibles Arrondi de façon à ce que le digit le moins significatif soit pair Ex: arrondi au centième près 1.2349999 => 1.23 1.2350001 => 1.24 1.2350000 => 1.24 1.2450000 => 1.24 sif-1053

Arrondi de nombres binaires 11/09/2018 Nombres fractionnaires binaire Examples Arrondi au ¼ près (2 bits à droite du point binaire) sif-1053

Opérations en virgule flottante 11/09/2018 Addition en virgules flottantes Considérons l’addition de 2 réels chacun avec 15 bits significatifs sif-1053

Opérations en virgule flottante 11/09/2018 Alignement de b sif-1053

Opérations en virgule flottante 11/09/2018 Arrondissement du résultat sif-1053

Opérations en virgule flottante 11/09/2018 Multiplication en virgules flottantes Opérandes (–1)s1 M1 2E1 (–1)s2 M2 2E2 Résultat exacte (–1)s M 2E Signe s: s1 ^ s2 Mantisse M: M1 * M2 Exposant E: E1 + E2 Cadrage SI M ≥ 2, décaler M à droite, incrément de E Si E hors des bornes possibles, overflow Arrondir M pour cadrer la représentation sif-1053

Nombres réels en C Deux niveaux de nombres réels Conversions 11/09/2018 Nombres réels en C Deux niveaux de nombres réels float sinple précision double double précision Conversions Conversion entre des int, float, et double changent les valeurs numériques Double ou float à int Truncature de la partie fractionnaire Comme l’arrondissement rounding toward zero int à double Conversion exacte int à float Arrondissement selon le mode d’arrondi sif-1053

Nombres réels en C int x = …; float f = …; double d = …; 11/09/2018 int x = …; float f = …; double d = …; x == (int)(float) x Non: 24 bits significatifs x == (int)(double) x Oui: 53 bits significatifs f == (float)(double) f Oui: meilleure précision d == (float) d Non: perte précision f == -(-f); Oui: changement du bit s 2/3 == 2/3.0 Non: 2/3 == 0 d < 0.0 ((d*2) < 0.0) Oui! d > f -f < -d Oui! d * d >= 0.0 Oui! (d+f)-d == f Non: Non associatif sif-1053

Ariane 5 Pourquoi ??? Explosion apès 37 secondes de vol 11/09/2018 Ariane 5 Explosion apès 37 secondes de vol $500 millions perdus Pourquoi ??? Vh représentée par des nombres réels Conversion en short integer (16 bits) OK pour Ariane 4 Overflow pour Ariane 5 Même code utilisé sif-1053

Système Anti-Missile Patriot 11/09/2018 Système Anti-Missile Patriot Missile Scud non intercepté 23 soldats US tués (05/01/1991) Pourquoi ??? V représentée par des nombres réels T représenté par un integer Conversion de T en réel Perte de précision Avec le temps cette erreur s’accumule http://www.math.umn.edu/~arnold/disasters/patriot.html sif-1053

Fonctions logiques et algèbre booléenne 11/09/2018 C’est vers le milieu du 19ième siècle que le mathématicien et logicien anglais George Boole publie son traité d’algèbre intitulé: “Investigation des lois du raisonnement sur lesquelles reposent la théorie mathématique de la logique et les probabilités”. Il faut par contre attendre près d’un siècle avant que l’on trouve des applications pratiques à cette théorie. sif-1053

Fonctions logiques et algèbre booléenne 11/09/2018 Ce 2 novembre 2015 Google a fêté les 200 ans de Georges Boole. sif-1053

11/09/2018 L’algèbre de Boole est une algèbre applicable aux raisonnements sur des propositions logiques, une proposition peut être vraie ou fausse, ce que l’on peut noter par 1 ou 0. En électronique, le courant électrique passe ou ne passe pas, ce que l’on peut noter également par 1 ou 0. En fait c’est sur ce concept fondamental, pour le moins assez simple, que sont construits tous les ordinateurs électroniques. sif-1053

Variable Booléenne 11/09/2018 Puisqu’une variable de Boole ne peut prendre que deux valeurs, 0 ou 1, nous pouvons écrire: si A différent de 0 ==> A = 1 si A différent de 1 ==> A = 0 sif-1053

11/09/2018 On associe souvent la notation de variable booléenne à un interrupteur ouvert ou fermé. Supposons que la valeur 1 soit associée à l’interrupteur fermé et 0 à l’interrupteur ouvert. En admettant la présence d’une tension au point E, nous avons une tension au point S dans la mesure où A = 1. Si A = 0 (interrupteur ouvert), il n’y a pas de tension en S. sif-1053

Complémentation d’une variable booléenne 11/09/2018 Étant donnée la dualité inhérente à toute l’algèbre de Boole, la notion de complémentation d’une variable ou d’une expression est immédiate, nous appelons complément d’une variable ou d’une expression l’opposé en algèbre de Boole de cette variable ou de cette expression. L’opération de complémentation peut donc être représentée par le tableau ci-dessous. ~A = 1 quand A=0 Variable Complément A A (ou A’) 0 1 1 0 sif-1053

11/09/2018 Nous voyons donc que si la variable A est associée à un interrupteur ouvert pour la valeur 0 et fermé pour la valeur 1, la variable A’ est associée à un interrupteur mécaniquement lié au premier, mais ouvert quand A = 1 et fermé quand A = 0 sif-1053

La somme logique 11/09/2018 La notion de somme logique (à ne pas confondre avec la somme algébrique) peut être associée à des interrupteurs en parallèle. En associant à la présence d’une tension en un point la valeur logique 1, et à son absence la valeur logique 0, nous obtenons: S=0, si A=0 et B=0 simultanément; S=1 , si A=1 ou B=1(ou les deux). sif-1053

11/09/2018 Cette opération de somme logique est indiquée par le signe +. Nous écrivons donc: S = A + B Le + logique (que nous ne devons pas confondre avec le + de l’algèbre classique) correspond assez bien à la dénomination OU: nous avons une tension en S si les interrupteurs A OU B (ou les deux) sont fermés. A | B = 1 quand A = 1 ou B = 1 sif-1053

11/09/2018 Par analogie avec la table d’addition classique, nous pouvons établir une table d’addition logique. + 0 1 0 0 1 1 1 1 sif-1053

S=1 , si A=1 et B=1simultannément. Le produit logique 11/09/2018 Nous avons vu dans le paragraphe précédent que la notion de somme logique se rapproche de celle d’interrupteurs en parallèle. De la même façon, nous associons la notion de produit logique à celle d’interrupteurs placés en série S=0, si A=0 ou B=0; S=1 , si A=1 et B=1simultannément. sif-1053

Cette opération de produit logique est notée: 11/09/2018 Cette opération de produit logique est notée: S = A x B (ou A.B ou AB) Le x logique (que nous ne devons pas confondre avec le x de l’algèbre classique) correspond assez bien à la dénomination ET: nous avons une tension en S si les interrupteurs A et B sont fermés. A & B = 1 quand A = B = 1 sif-1053

11/09/2018 Par analogie avec la table de multiplication classique, nous pouvons établir une table de multiplication logique. x 0 1 0 0 0 1 0 1 sif-1053

Le OU-EXCLUSIF (Xor) A^B = 1 quand A=1 ou B=1 mais A != B sif-1053 11/09/2018 A^B = 1 quand A=1 ou B=1 mais A != B sif-1053

Identités utiles en algèbre Booléenne 11/09/2018 sif-1053

Exemples Opérations sur plusieurs bits Opérations appliquées bit à bit 11/09/2018 Opérations sur plusieurs bits Opérations appliquées bit à bit 01101001 & 01010101 01000001 01101001 ^ 01010101 00111100 ~ 01010101 10101010 01101001 | 01010101 01111101 sif-1053

Opérations sur les bits en C 11/09/2018 Opérations &, |, ~, ^ disponibles en C Applicable à plusieurs types de données long, int, short, char Voir les opérandes comme des suites de bits Opérations bit à bit Exemples (char) ~0x41 --> 0xBE ~010000012 --> 101111102 ~0x00 --> 0xFF ~000000002 --> 111111112 0x69 & 0x55 --> 0x41 011010012 & 010101012 --> 010000012 0x69 | 0x55 --> 0x7D 011010012 | 010101012 --> 011111012 sif-1053

Opérations logiques en C VERSUS Opérations sur les bits 11/09/2018 Opérateurs Logiques && (ET logique), || (OU logique), ! (NON logique) Voir 0 comme FAUX Tout ce qui est différent de 0 est VRAI Retourne 0 ou 1 Exemples (char) !0x41 --> 0x00 (NOT VRAI = FAUX) !0x00 --> 0x01 (NOT FAUX = VRAI) !!0x41 --> 0x01 0x69 && 0x55 --> 0x01 0x69 || 0x55 --> 0x01 x = 100 y = 50 xx = 120 yy = 130 (x >= y) && (xx == yy)  0x00 sif-1053

Résumé des opérateurs en C 11/09/2018 Opérateurs Arithmétiques +, += /* addition, addition et affectation */ -, -= /* soustraction, soustraction et affectation */ *, *= /* multiplication, multiplication et affectation */ /, /= /* division, division et affectation */ %, %= /* reste de la division entière (modulo), modulo et affectation */ ++ /* incrémentation a++, ++a */ -- /* décrémentation a--, --a */ Relationnels <, <= /* plus petit, plus petit ou égal */ >, >= /* plus grand, plus grand ou égal */ ==, != /* égal ou différent */ Logiques ! /* complément (non) */ && /* et */ | | /* ou */ sif-1053

Résumé des opérateurs en C 11/09/2018 Opérateurs Logiques bitwise (sur des bits) ~ /* complément à 1 */ &, &= /* et logique, et logique et affectation */ | , |= /* ou logique, ou logique et affectation */ ^, ^= /* ou exclusif, ou exclusif et affectation */ >>, >>= /* décalage à droite, décalage à droite et affectation */ <<, <<= /* décalage à gauche, décalage à gauche et affectation */ sif-1053

Epsilon de la machine et nombre de chiffres significatifs d’une représentation 11/09/2018 Lorsque nous effectuons l’addition de 2 nombres réels le plus petit des 2 est décalé ce qui occasionne une perte de précision Dans des cas extrêmes il peut arriver que le plus petit nombre n’ai aucune signifiance dans le calcul, ayant été décalé complètement vers la droite Le nombre de décalages maximum que peut subir un nombre avant qu’il n’ai plus de signifiance correspond au nombre de chiffres significatifs de la représentation sif-1053

Epsilon de la machine et nombre de chiffres significatifs d’une représentation 11/09/2018 Le plus petit nombre signifiant d’une représentation est appelé epsilon de la machine Ce nombre représente la plus petite valeur de x pour laquelle 1+x>1 sif-1053

Epsilon de la machine et nombre de chiffres significatifs d’une représentation 11/09/2018 Algorithme qui trouve le epsilon de la machine et le nombre de chiffres significatifs (cas binaire) eps=1 n=0 unpluseps = 1 + eps TTQ unpluseps>1 FAIRE eps = eps/2 n++ FIN TTQ eps = eps * 2 n = n-1 imprimer eps et n sif-1053

Propagation des erreurs 11/09/2018 Propagation des erreurs Lorsque une opération telle que l’addition est répétée il peut survenir un phénomène de propagation des erreurs d’arrondi Alors la sommation suivante peut dans certain cas ne pas donner 1 sif-1053

Propagation des erreurs 11/09/2018 Propagation des erreurs De plus, l’ordre des sommations a aussi une influence sur la propagation des erreurs Par conséquent les 2 sommations suivantes devraient donner la même valeur mais ce n’est pas le cas quand N est le moindrement grand sif-1053

Propagation des erreurs 11/09/2018 Propagation des erreurs Algorithme de sommation successive saut = 1/N somme = 0 POUR i = 1 à N FAIRE somme = somme + saut FIN POUR imprimer somme et erreur (1-somme) sif-1053

Propagation des erreurs 11/09/2018 Propagation des erreurs Algorithme de sommation ascendant somme = 0 POUR i = 1 à N par saut de 1FAIRE somme = somme + 1/in FIN POUR imprimer somme sif-1053

Propagation des erreurs 11/09/2018 Propagation des erreurs Algorithme de sommation descendant somme = 0 POUR i = N à 1 par saut de -1 FAIRE somme = somme + 1/in FIN POUR imprimer somme sif-1053

Éléments de programmation en C 11/09/2018 Éléments de programmation en C Entrées/Sorties Des symboles de formattage sont utilisés comme arguments aux fonctions d’I/O (ex: lecture au clavier et écriture à l’écran) “%d” /* formattage d’un nombre décimal */ “%i” /* formattage d’un nombre décimal */ “%f” /* formattage d’un nombre réel */ “%c” /* formattage d’un caractère */ “%s” /* formattage d’une chaîne de caractères */ “%ld” /* formattage d’un nombre entier long */ “%lf” /* formattage d’un nombre réel long */ sif-1053

Éléments de programmation en C 11/09/2018 Éléments de programmation en C Caractères spéciaux Des caractères spéciaux sont utilisés pour modifier une sortie à l’écran ou pour faciliter la gestion des chaînes de caractères ‘\b’ /* backspace */ ‘\f’ /* saut de page (form feed) */ ‘\n’ /* nouvelle ligne (new line) */ ‘\r’ /* retour de chariot (return) */ ‘\t’ /* tabulation (tab) */ ‘\’’ /* apostrophe */ ‘\”’ /* guillemets */ ‘\0’ /* caractère nul (null) */ ‘\\’ /* barre oblique inversée */ sif-1053

Éléments de programmation en C 11/09/2018 Éléments de programmation en C Structures de contrôle (Boucles) Boucle while while(condition){} Par exemple: iter =10; i=res=0; a = 12.5; while(i<iter){ res += (int) a; printf(“\n Dans main() res = %d et a = %5.2f”, res,a); i++; } sif-1053

Éléments de programmation en C 11/09/2018 Éléments de programmation en C Exemple de programme (somme successive de termes puissances) Voir projet calculPOW sif-1053

Éléments de programmation en C 11/09/2018 Éléments de programmation en C Exemple de programme (somme successive de termes puissances) Ajouter ces lignes dans le fichier StdAfx.h sif-1053

Éléments de programmation en C 11/09/2018 Éléments de programmation en C Exemple de programme (somme successive de termes puissances) Exécution du programme sif-1053