Représentation des Nombres



Documents pareils
Logiciel de Base. I. Représentation des nombres

Conversion d un entier. Méthode par soustraction

IFT2880 Organisation des ordinateurs et systèmes

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

V- Manipulations de nombres en binaire

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Chapitre 10 Arithmétique réelle

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Représentation d un entier en base b

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

Les opérations binaires

Informatique Générale

Licence Sciences et Technologies Examen janvier 2010

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

Architecture de l ordinateur

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

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

Introduction à l étude des Corps Finis

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

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Précision d un résultat et calculs d incertitudes

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

Cours Informatique 1. Monsieur SADOUNI Salheddine

avec des nombres entiers

Algorithme. Table des matières

DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION

Architecture matérielle des systèmes informatiques

COURS EULER: PROGRAMME DE LA PREMIÈRE ANNÉE

Petit lexique de calcul à l usage des élèves de sixième et de cinquième par M. PARCABE, professeur au collège Alain FOURNIER de BORDEAUX, mars 2007

Glossaire des nombres

Chapitre 3. Quelques fonctions usuelles. 1 Fonctions logarithme et exponentielle. 1.1 La fonction logarithme

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

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

Nombres premiers. Comment reconnaître un nombre premier? Mais...

Développement décimal d un réel

Complément d information concernant la fiche de concordance

Mathématiques appliquées à l informatique

IV- Comment fonctionne un ordinateur?

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

Chapitre 1 : Évolution COURS

TOUT CE QU IL FAUT SAVOIR POUR LE BREVET

Programmation C. Apprendre à développer des programmes simples dans le langage C

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

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

Le chiffre est le signe, le nombre est la valeur.

La question est : dans 450 combien de fois 23. L opération est donc la division. Le diviseur. Le quotient

La fonction exponentielle

Représentation géométrique d un nombre complexe

Continuité et dérivabilité d une fonction

Programmation linéaire

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Puissances d un nombre relatif

Calculabilité Cours 3 : Problèmes non-calculables.

Les portes logiques. Voici les symboles des trois fonctions de base. Portes AND. Portes OR. Porte NOT

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

DOCM Solutions officielles = n 2 10.

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

Introduction à MATLAB R

Cours d initiation à la programmation en C++ Johann Cuenin

La mémoire. Un ordinateur. L'octet. Le bit

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

Définitions. Numéro à préciser. (Durée : )

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

a) b)

Chapitre 1 I:\ Soyez courageux!

Fonctions de plusieurs variables

Une version javascript sera disponible directement dans le cours prochainement.

EXERCICES DE REVISIONS MATHEMATIQUES CM2

Angles orientés et trigonométrie

ASR1 TD7 : Un microprocesseur RISC 16 bits

Activité 1. Compter les points Écriture binaire des nombres. Résumé. Liens pédagogiques. Compétences. Âge. Matériel

2. RAPPEL DES TECHNIQUES DE CALCUL DANS R

ÉPREUVE COMMUNE DE TIPE Partie D

Présentation du cours de mathématiques de D.A.E.U. B, remise à niveau

Université Paris-Dauphine DUMI2E 1ère année, Applications

Rappels Entrées -Sorties

GPA770 Microélectronique appliquée Exercices série A

LES TYPES DE DONNÉES DU LANGAGE PASCAL


Unités, mesures et précision

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

Eteindre. les. lumières MATH EN JEAN Mme BACHOC. Elèves de seconde, première et terminale scientifiques :

Organisation des Ordinateurs

Licence Sciences, Technologies, Santé Mention Informatique Codage de l'information

Vous revisiterez tous les nombres rencontrés au collège, en commençant par les nombres entiers pour finir par les nombres réels.

TP 1. Prise en main du langage Python

Assembleur i8086. Philippe Preux IUT Informatique du Littoral. Année universitaire 95 96

TD : Codage des images

Les nombres entiers. Durée suggérée: 3 semaines

CORRIGE LES NOMBRES DECIMAUX RELATIFS. «Réfléchir avant d agir!»

Continuité en un point

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

MPI Activité.10 : Logique binaire Portes logiques

TP 2 Réseaux. Adresses IP, routage et sous-réseaux

Théorie et codage de l information

STAGE IREM 0- Premiers pas en Python

Rappels sur les suites - Algorithme

1 Définition et premières propriétés des congruences

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Définition : On obtient les nombres entiers en ajoutant ou retranchant des unités à zéro.

Transcription:

Chapitre 5 Représentation des Nombres 5. Representation des entiers 5.. Principe des représentations en base b Base L entier écrit 344 correspond a 3 mille + 4 cent + dix + 4. Plus généralement a n a n... a a correspond en base à a n n +...+a +a. On a donc n chiffres pour un entier x de l ordre de n et un rapport logarithmique entre la représentation et l écriture de l entier x c.a.d. log (x) n. Cas général : base b On a b chiffres pour représenter,,..., b et x = a n a n... a a correspond en base b à x = a n b n + a n b n +... + a b + a b. Notations. Pour différencier une écriture en base b de la même écriture considérée dans une autre base, nous placerons parfois la base en indice, comme par exemple (344) pour préciser que 344 doit être interprété dans la base. Dans la suite, nous notons val b la fonction qui à une écriture en base b associe la valeur de la représentation, définie par val b (a n a n... a a ) = Σ n i= a i b i. Exemples : 57

58 CHAPITRE 5. REPRÉSENTATION DES NOMBRES base chiffres,,..., 9 base 2 chiffres et 8 s ecrit () 2 7 s ecrit () 2 base 8 (octal) chiffres,..., 7 9 s écrit () 8 25 s écrit (3) 8 base 6 plus assez de chiffres!??? A pour, B pour,...,f pour 5 67 s écrit (A7) 6 Changer de base. Représentation binaire vers représentation en base. () 2 = 2 3 + 2 2 + 2 + 2 = 3 Le principe général pour passer de base b vers base consiste à faire l évaluation à partir de la définition précédente val b (a n... a a ) = a n b n +... + a b + a b. Représentation décimale vers représentation en base 2. 3 2 6 2 3 2 d ou (3) = () 2 Le principe général pour passer de base vers une base b consiste à faire les divisions euclidiennes par b, la suite des restes et du dernier quotient inversée forme l écriture. Nous noterons dans la suite cod b l application qui à un entier naturel associe son codage en base b. Exercice : démontrer que le principe des divisions euclidiennes successives est correct. Indication : On démontrera que l écriture en base b est unique, excepté d éventuels supplémentaires en tête de l écriture. On identifiera ensuite les coefficients à partir de la fonction val b en factorisant par b. 5..2 Opérations arithmétiques Addition retenue. Cours élémentaire première année : une difficulté majeure, la

5.. REPRESENTATION DES ENTIERS 59 99 + 77 = (9 + 9) + (7 + 7) = 9 + 7 + + 6 = + 7 + 6 Conclusion : en base il faut apprendre les tables d addition. En base 2 c est plus simple : une machine à additionner est représentée sur la Figure 5.. 2 états dans la machine. Etat pas de retenue Etat une retenue (qui vaut forcement ) op Les vecteurs sont de la forme op2 où op est le n-ème bit du premier res opérande, op2 est le n-ème bit du second opérande et res est le n-ème bit du résultat. sans retenue avec retenue Figure 5. Un automate pour l addition Les nombres sont lus de la droite vers la gauche (ou bien on considère qu ils sont écrits à l envers), on complète l ecriture avec des pour que les deux nombres et leur somme aient même longueur (on peut rajouter autant de que voulu, le résultat ne change pas), la valeur du résultat est le seul bit possible correspondant aux valeurs de op et op2 dans l état ou on est.

6 CHAPITRE 5. REPRÉSENTATION DES NOMBRES () s écrit () 2, en inversant on a, complété par on a.... (7) s écrit () 2, en inversant on a, complété par on a.... La machine donne :......... d où en rétablissant le bon sens de lecture + = Soustraction Comment gérer a b si b > a? Problème de signe. Si le problème est réglé, alors soustraire c est ajouter l opposé. On verra comment faire plus loin. Opération plus difficile : apprendre les tables de multipli- Multiplication cation. Division Pour que le résultat soit entier, il faut considérer la division entière. C est encore plus compliqué que la multiplication. On ne parlera pas ici ni de la réalisation de la division ni même de la multiplication. 5.2 Représentation des entiers machines Les entiers vont être représentés par des emplacement mémoires formés d octets (byte), un octet est un groupe de 8 cases élémentaires appelées bits dont la valeur est ou (ceci est physiquement réalisé par une valeur de tension positive ou négative, une aimantation,...). Le mot machine est l entité de stockage de base est formé de, 2, 3, 4, 8,... octets selon les machines, c.a.d. 8, 6, 32, 64,... bits. La plupart des ordinateurs actuels utilisent 32 bits. Avec N bits on a 2 N suites possibles de et. Conséquence : les nombres représentables sont en nombre fini. On ne peut pas tout représenter ni calculer. Avec 32 bits on est limité à 2 32 écritures possibles et donc de l ordre de quelques milliards de nombres (et le plus grand nombre est de cet ordre de grandeur). Question : sachant qu on dispose de N bits pour représenter un entier,. comment représenter les entiers signés? 2. comment calculer +, avec la représentation choisie? Terminologie : bit de poids fort : celui de la plus grande puissance, bit de poids faible : celui des unités.

5.2. REPRÉSENTATION DES ENTIERS MACHINES 6 Representation : bit de signe et valeur absolue Le premier bit indique le signe pour +, pour. Le reste est la valeur absolue (en base 2). Sur 3 bits cela donne : -3 + -2 + - +2 - +3 Inconvénient : 2 représentation pour, additionner demande à comparer les deux nombres avant :? On souhaiterait avoir une représentation donnant une unique représentation à chaque valeur, et pour laquelle on puisse calculer la somme bit à bit. Représentation 2 : complément à 2 Avant de définir cette représentation, nous introduisons l opération appelée complément à consistant, étant donné un codage en base 2, à inverser la valeur de chaque bit ( devient, et devient ). Par exemple, l écriture en base 2 est transformée dans l écriture. Nous pouvons donner la valeur de la nouvelle écriture. Si l écriture initiale u = a N... a a est donnée sur N bits, sa valeur en base 2 est val 2 (u) = Σ i=n i= a i 2 i. Le complément à de u, noté ū, vérifie alors : val 2 (ū) = Σ i=n i= ( a i ) 2 i = Σi= i=n 2 i Σ i=n i= a i 2 i = 2 N val 2 (u) La représentation appelée complément à 2 permet de représenter sur N bits les entiers relatifs appartenant à l intervalle [ 2 N,..., 2 N ]. Etant donné un entier x [ 2 N,..., 2 N ], la représentation en complément à 2 de x sur N bits est définie de la façon suivante : Si x, la représentation est obtenue en appliquant la représentation des entiers naturels en base 2 (opération cod 2 ). Si x <, la représentation est obtenue de la façon suivante :. considérer l entier naturel n = (x + ) [, 2 N ] 2. calculer son codage u en base 2 à l aide de cod 2 : u = cod 2 (n) 3. appliquer l opération de complément à à u

62 CHAPITRE 5. REPRÉSENTATION DES NOMBRES Quelques propriétés de la représentation complément à 2 : (i) la représentation d un entier positif ou nul commence par un, (ii) la représentation d un entier strictement négatif commence par un, (iii) si x est positif ou nul, la valeur de sa représentation est x, (iv) si x est négatif, la valeur de sa représentation est 2 N + x, (v) la représentation complément à 2 est correcte et optimale : il existe une bijection entre l ensemble des nombres représentés et l ensemble des représentations. Pour démontrer ces points, rappelons que le codage d un entier positif inférieur ou égal à 2 K ne nécessite que K bits. (i) D après l intervalle considéré plus haut, si x est positif ou nul, il s écrit sur N bit, et le N-ème bit vaut donc. (ii) De la même façon, si x est strictement négatif, la nombre n = (x+) va également être représenté sur N bits, le N-ème bit vaut donc également. L opération de complément à le transforme ensuite en un, ce qui démontre le résultat. (iii) Le résultat est évident car on a appliqué la représentation en base 2 des entiers positifs ou nuls. (iv) D après la propriété démontrée sur l opération de complément à, la valeur de la représentation complément à 2 d un entier x strictement négatif est égale à 2 N val 2 (u), où u est le codage en base 2 de n = (x + ). On obtient donc la valeur 2 N + (x + ) = 2 N + x (v) Les points (i) et (ii) entraînent qu un nombre négatif et un nombre positif ne peuvent avoir la même représentation. De plus, pour les nombres positifs, la propriété découle de la correction de la représentation en base 2, et pour les nombres négatifs, la propriété découle du fait que l opération de complément à qui est une bijection. D après l intervalle considéré, il y a exactement 2 N nombres distincts. Comme on dispose de N bits, on peut représenter au plus 2 N objets distincts, la représentation est donc optimale. Valeurs obtenues pour le codage en complément à 2 sur N = 3 bits : - + -2 + -3 +2-4 +3

5.2. REPRÉSENTATION DES ENTIERS MACHINES 63 Décodage de la représentation en complément à 2. Etant donné une écriture u = a N... a a donnée en complément à 2, pour calculer la valeur du nombre x représenté par u, on procède ainsi : Si le premier bit a N vaut, alors le nombre x est positif ou nul et on a simplement x = val 2 (u). Si le premier bit a N vaut, alors le nombre x est strictement négatif. La valeur de x est alors obtenue de la façon suivante :. appliquer l opération de complément à à u. Notons v la nouvelle écriture obtenue. 2. calculer la valeur en base 2 de la nouvelle écriture v. Notons n = val 2 (v). 3. la valeur de x est donnée par x = (n + ). Addition en complément à 2 Nous avons vu que le calcul de la représentation d un nombre x en complément à 2 est plus compliqué mais chaque nombre possède une écriture unique et de plus l addition peut être effectuée bit à bit : + 2 + + 2 + 2 3 + + Exercice : pourquoi le résultat est-il correct? Débordement Avec une représentation sur 3 bits on ajoute deux entiers. Que se passe-t-il si on a un résultat plus grand que 3 ou plus petit que 4? Par exemple 3 + 2 = 5 le résultat est aberrant (il est négatif), il y a eu débordement. Il faut donc s assurer que les opérations arithmétiques qu on effectue restent dans les limites des représentations (y penser quand on écrit ses programmes). Plus précisément on distingue les trois cas suivants :

64 CHAPITRE 5. REPRÉSENTATION DES NOMBRES somme d un entier positif et d un entier négatif : le résultat obtenu est nécessairement correct car la somme est dans l intervalle des nombres représentables. Il peut y avoir débordement sur le N + -ème bit mais on peut l ignorer. somme de deux entiers positifs : le résultat est correct si et seulement si la somme est inférieure ou égale à 2 N (le plus grand nombre positif que l on peut représenter). Ceci correspond à ne pas déborder sur le N-ème bit, c est-à-dire à produire un (qui représente les nombres positifs) sur le N-ème bit. somme de deux entiers négatifs : le résultat est correct si et seulement si la somme bit à bit produit un (qui représente les nombres négatifs) sur le N-ème bit. On peut vérifier que ceci correspond à imposer que la somme des deux nombres négatifs soit supérieure ou égale à 2 N, le plus petit nombre négatif que l on peut représenter. A nouveau, le débordement sur le N + -ème bit doit être ignoré. 5.3 Représentation des réels Même problème en plus compliqué : place finie pour une infinité de réels, mais en plus on ne sait pas représenter complètement un réel. 656869798789796785688998 grand mais complètement déterminé. /3 =.3333333... pas de représentation décimale finie, 2 =.44... pas de représentation rationnelle, π = 3.459... pas de représentation algébrique Seuls les nombres décimaux pas trop grands peuvent se représenter en machine. Par conséquent toute représentation de nombre réel sera imparfaite. De plus comme pour les entiers, les nombres sont représentés par des suites de bits donc en base 2. Cela a des conséquences inattendues : le nombre. est un décimal en base mais pas en base 2! Représentation : virgule fixe (le nombre de chiffres des parties entières et fractionnaires est fixé) On code le nombre x par l entier x b p où p est fixé correspond au nombre voulu de chiffres de la partie fractionnaire. Exemple : p = 4 alors la suite représente x =. (en base 2) c est à dire x =.5 +.25 +.625 =.825 en base. Problème : l échelle est fixe et on ne peut pas la modifier. Impossible de combiner des nombres très différents. D où l abandon au profit de la représentation suivante.

5.3. REPRÉSENTATION DES RÉELS 65 Représentation 2 : virgule flottante machines) (représentation utilisée par les x = m }{{} mantisse b }{{} base exposant {}}{ e et la représentation de x est (m, e) (b étant fixée une fois pour toute). Comme pour les entiers, un réel peut être trop grand ou trop petit, ce qui causera un débordement (overflow si trop grand ou underflow si trop petit). Des représentations approchées de π sont : (.3, 2), (3.42, ), (.3, 3) et on voit qu elles ne donnent pas la même précision. Pour éviter ce problème et garder la meilleure précision, on utilisera une mantisse normalisée c est à dire qu elle ne contiendra pas de en tête (donc le premier bit de la mantisse sera ). Par contre devra être représenté de manière spéciale. De plus on choisira le facteur d echelle de manière à ce que m < b (donc mantisse comprise en valeur absolue entre et 2 en base 2). Comme cette représentation commence toujours par, on n écrit pas ce ce qui permet d économiser un bit. La comparaison de deux nombres se fera par comparaison de leurs exposants d abord ce qui est plus compliqué s ils sont signés. En base 2 on utilise des exposants biaisés : si on a N bits pour représenter l exposant, on ajoute 2 N à l exposant. Tout exposant entre 2 N + et 2 N est représentable ainsi. Pour assurer la compatibilité entre les machines, un standard a été edicté par l IEEE (Institute of Electrical and Electronics Engineers), c est la norme 754.. pour une représentation 32 bits : bit de signe, exposant sur 8 bits biaisé à 27 = 2 8, mantisse sur 23 bits 2. pour une représentation 64 bits : bit de signe, exposant sur bits biaisé à 23 = 2, mantisse sur 52 bits Exemple : }{{} signe } {{ } } {{ } exposant mantisse signe : bit à donc le nombre est négatif. exposant biaisé vaut = 3 donc l exposant est = 3 27 = 97 mantisse : (ne pas oublier le premier ) vaut : + 2 2 + 2 4 + 2 6 + 2 8 + 2 + 2 2 + 2 4 + 2 6 + 2 8 + 2 2 + 2 22 + 2 24 + 2 26 4/3

66 CHAPITRE 5. REPRÉSENTATION DES NOMBRES Le nombre vaut donc 4/3 2 97 4/3 (2 ) 2 3 32/3. 3. Opération inverse : trouver la représentation sur 32 bits du réel 278. Le nombre est positif d où comme bit de signe. On doit trouver l exposant e tel que x = m 2 e avec m < 2. D où e = 8 (car 2 8 < x < 2 9 ) et donc m = 278/256. L exposant est biaisé à 27 d ou e = 27 + 8 = 35 représenté comme Un manière simple de trouver la représentation de m est de voir que x = 2 8 +2 4 +2 2 +2 = 2 9 (2 +2 5 +2 7 +2 8 ) d où m =. en base 2 ce qui donne la représentation du nombre (ne pas oublier que la partie entière de la mantisse est omise) : }{{} signe } {{ } } {{ } exposant mantisse Effectuer les opérations arithmétiques sur ces représentations n est pas une tache facile et met usuellement en oeuvre des algorithmes qui sont réalisés en durs par des circuits électroniques (voir la presentation de l ALU plus loin). Rappelons que le celèbre bug du pentium vient d une mauvaise réalisation d un algorithme de division sur les réels. Exercices Exercice. Dans tout l exercice, on considère le codage des entiers sur 4 bits (4 chiffres binaires).. Dans un premier temps, on ne code que des entiers positifs ou nuls. Quelle est le codage binaire (sur 4 bits) de l entier (2)? Quel nombre en base correspond au nombre en base 2 () 2? Quel est le plus grand nombre représentable par ce codage (donnez sa valeur en base 2 et en base )? 2. Un nombre négatif n est codé par le complément à un de son opposé n. Rappel : le complément à un d un nombre binaire consiste à inverser tous les chiffres de ce nombre. Exemple : le complément à de () 2 est () 2. Quel est le codage de l entier ( 3) en utilisant le complément à un? A quel nombre en base correspond () 2. A quel nombre correspond () 2? Quel est l inconvénient de la représentation des entiers négatifs par complément à?. 3. Le complément à deux d un nombre binaire consiste à ajouter à son complément à un. Le décalage à gauche d un nombre binaire est une opération consistant à décaler tous les chiffres (bits) de ce nombre d une position vers la gauche. exemple Le décalage à gauche de () 2

5.3. REPRÉSENTATION DES RÉELS 67 est () 2. Que réalise l opération de décalage des nombres binaires sur les entiers en base correspondants? Sur une représentation par complément à 2, quel est est le plus grand nombre binaire représentant un entier positif auquel on peut appliquer cette opération sans risque de débordement? Que vaut cet entier en base. Exercice. On suppose qu on dispose de 3 bits pour représenter les entiers signés en base 2 en utilisant le complément à deux.. Donner les représentations de 2, et 2. Calculer la somme des trois représentations (expliquer en détail vos calculs). Quel est le résultat? De quel nombre est-ce la représentation? 2. Pourrait-on faire de même avec 2,, 3 sans problème? Exercice. La representation d un nombre flottant sur 32 bits est telle que : le bit de signe est, l exposant est, la mantisse est Expliquer ce que cela signifie. Donner la valeur du nombre flottant en base (ne pas oublier que l exposant est biaisé à 28). Indication : le résultat est un entier dont la valeur absolue ne dépasse pas 3. Exercice. Les flottants sont représentés de manière normalisée sur 32 bits. Calculer la représentation sur 32 bits du nombre réel,. Même question pour, 2 puis 3, 25. Quel est le plus petit réel représentable? le plus grand?