Logiciel de Base. I. Représentation des nombres

Documents pareils
IFT2880 Organisation des ordinateurs et systèmes

Chapitre 10 Arithmétique réelle

Représentation des Nombres

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

Informatique Générale

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

Conversion d un entier. Méthode par soustraction

V- Manipulations de nombres en binaire

Architecture de l ordinateur

Les opérations binaires

Algorithme. Table des matières

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Représentation d un entier en base b

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Mathématiques appliquées à l informatique

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

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

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

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

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

Licence Sciences et Technologies Examen janvier 2010


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

Système binaire. Algèbre booléenne

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

1 Introduction au codage

Une version javascript sera disponible directement dans le cours prochainement.

Cours Informatique 1. Monsieur SADOUNI Salheddine

Puissances d un nombre relatif

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Organisation des Ordinateurs

Le codage informatique

a) b)

Rappels Entrées -Sorties

Chapitre 1 I:\ Soyez courageux!

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

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

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

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

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

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

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

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Microprocesseur + Logiciel

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

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

ALGORITHMIQUE ET PROGRAMMATION En C

TP 1. Prise en main du langage Python

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

Electronique Numérique

Nom : Date : Je connais par cœur toutes les opérations jusque 10.

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

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

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

Jeux de caracte res et encodage (par Michel Michaud 2014)

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)

I- Définitions des signaux.

ET LO GICIEL D UN S YS T EME IN FORMATIQUE

Initiation à la programmation en Python

LES TYPES DE DONNÉES DU LANGAGE PASCAL

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

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

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

REALISATION D UNE CALCULATRICE GRACE AU LOGICIEL CROCODILE CLIPS 3.

TO4T Technologie des ordinateurs. Séance 1 Introduction aux technologies des ordinateurs

Priorités de calcul :

TP Codage numérique des caractères. Un ordinateur ne manipule que des 0 et des 1 : Comment alors code-t-il du texte?

2 Comment fonctionne un ordinateur, dans les grandes lignes

avec des nombres entiers

EXCEL TUTORIEL 2012/2013

Glossaire des nombres

Architecture matérielle des systèmes informatiques

Présentation du langage et premières fonctions

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

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


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

INF 321 : mémento de la syntaxe de Java

Unités, mesures et précision

Cours d Informatique

IV- Comment fonctionne un ordinateur?

Algorithmique et Programmation, IMA

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

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

Calculons avec Albert!

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

Continuité et dérivabilité d une fonction

Numérisation du signal

Architecture des ordinateurs Introduction à l informatique

EBS 204 E C B S. Publication : Novembre 96

Les chaînes de caractères

Architecture des Ordinateurs Première partie. Licence d Informatique - IUP Miage - FIIFO

TD : Codage des images

Complément d information concernant la fiche de concordance

Factorisation Factoriser en utilisant un facteur commun Fiche méthode

Le multiplexage. Sommaire

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

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

Partie Agir : Défis du XXI ème siècle CHAP 20-ACT EXP Convertisseur Analogique Numérique (CAN)

Transcription:

Logiciel de Base (A1-06/07) Léon Mugwaneza ESIL/Dépt. Informatique (bureau A118) mugwaneza@univmed.fr I. Représentation des nombres

Codage et représentation de l'information Information externe formats multiples et variés (nombres, textes, images, sons,...) Information interne (manipulée par l ordinateur) binaire : que des séquences 0 et de 1 (bits - BInary digits) grandeur physique manipulée : tension électrique (0V = 0, 1.5V = 1) mot binaire : séquence de bits (ex : 0010111 est un mots de 7 bits) quartet : mot binaire composé de 4 bits (ex: 0111) octet (byte en anglais) : mot binaire de 8 bits (ex : 1101 0110) mot de 32 bits (ex : 0110 1111 0001 1011 1000 0111 1110 1111) Nécessité d'unités d'échanges : conversion analogique/numérique ou numérique/analogique capteurs, carte d'acquisition, cartes de conversion 2

Représentation de l information Les séquences de bits peuvent représenter «beaucoup de choses!» MAIS n bits => 2 n valeurs différentes caractères? 26 lettres => 5 bits majuscules, minuscules + ponctuation ==> 7 bits (dans 8) ( ascii ) code standard pour couvrir toutes les langues du monde => 16 bits (unicode) valeurs logiques? 1bit : 0 FAUX, 1 VRAI nombres entiers, nombres réels? couleurs? adresses? instructions / commandes? 3

Représentation des nombres Nombres entiers naturels («entiers non signés») Nombres entiers relatifs («entiers signés») Nombres «réels» (les «nombres fractionnaires») 4

Nombres entiers naturels : base 10 Chiffres : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Exemple de nombres en base 10 32071 = (3x10 4 ) + (2x10 3 ) + (0x10 2 )+(7x10 1 ) + (1x10 0 ) 490 = (4x10 2 ) + (9x10 1 ) + (0x10 0 ) 5

Les entiers naturels : notation de position (1/2) Base B (B entier) => B symboles différents (chiffres) base 10 (décimal : 10 chiffres) : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 base 2 ( binaire : 2 chiffres ) : 0, 1 base 16 (hexadécimal) : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F Représentation des nombres : notation de position c 31 c 30... c 2 c 1 c 0 nombre en base B à 32 chiffres valeur = c 31 x B 31 + c 30 x B 30 +... + c 2 x B 2 + c 1 x B 1 + c 0 x B 0 Binaire : 0,1 1011010 = 1x2 6 + 0x2 5 + 1x2 4 + 1x2 3 + 0x2 2 +1x2 1 + 0x2 0 B i est le poids de c i = 64 + 16 + 8 + 2 = 90 Notez qu un nombre binaire à 7 chiffres (1011010) est devenu un nombre décimal de 2 chiffres (90) 6

Les entiers naturels : notation de position (2/2) Taille bornée des entiers stockés Soit un entier M représenté sur n symboles dans une base B, on a M [0, B n -1] Exemples :» sur 3 chiffres décimales, on peut représenter les entiers [0, 999 ]» sur 3 bits en binaire, on peut représenter les entiers [0, 7]» sur 3 symboles en hexadécimal, on peut représenter les entiers [0, 4095] Extension : la base B, un entier représenté sur p symboles peut être étendu en un entier sur n>p symboles en introduisant des 0 sur les symboles de rang p à n-1 exemple :» l extension de 011 b sur 5 bits donne 00011 b 7

Conversion 2 10, 16 10 la base B, un nombre M représenté sur n bits par c n-1 c n-2... c 2 c 1 c 0 a la valeur : Exemples : M n = 1 i= 0 c B i i 010100 b = 0*2 0 +0*2 1 +1*2 2 +0*2 3 +1*2 4 +0*2 5 = 4 + 16 = 20 d 1111 b = 1*2 0 +1*2 1 +1*2 2 +1*2 3 = 1+2+4+8 = 15 d 012 h = 2*16 0 +1*16 1 +0*16 2 = 2+16 = 18 d 1AE h = 14*16 0 +10*16 1 +1*16 2 = 14+160+256=430 d 8

Conversion 10 2 Comment à partir de M retrouver les c i? Divisions successives jusqu à l obtention d un quotient nul attention : lecture du résultat du bas vers le haut Tableau des puissances de 2 parcourir le tableau des 2 i de gauche à droite» Si M 2 i, alors mettre 1 dans case 2 i et M=M-2 i» Sinon mettre 0 dans case 2 i continuer jusqu à 2 0 Exemple : 6 d =110 b M n = 1 c i i= 0 2 i 6 2 0 3 2 1 1 2 1 0 2 3 2 2 2 1 2 0 0 1 1 0 9

Bonus Conversion 10 16 M Idem base 2 Divisions successives jusqu à l obtention d un quotient nul lecture des restes du bas vers le haut Tableau de puissance de 16 parcourir le tableau des 16 i de gauche à droite» Soit c= M / 16 i, mettre c dans case 16 i et M=M-c*16 i continuer jusqu à 16 0 n = 1 i= 0 c i 16 i 687 16 F 42 16 A 2 16 2 0 Exemple : 687 d =2AF h 16 3 16 2 16 1 16 0 0 2 A F 10

Conversion 2 16, 16 2 2 16 : séparer le nombre binaire en quartets (de droite à gauche) convertir chaque quartet en hexadécimal Exemple : 11011110001010000 b séparation en quartet : 1 1011 1100 0101 0000 conversion : 1 1011 1100 0101 0000 b = 1 B C 5 0 h 16 2 : conversion de chaque symbole en un quartet binaire Exemple : AF23 h en quartets : A h =1010 b, F h =1111 b, 2 h =0010 b, 3 h =0011 b conversion : AF23 h = 1010 1111 0010 0011 b 11

Opérations sur les entiers naturels Addition et soustraction sur entiers naturels décimaux 1 7 5 + 1 7 9 2 7 1 5-1 1 7 5 8 Remarque : la soustraction n est pas définie si le nombre à soustraire est plus grand que le nombre auquel on le soustrait 12

Addition d entiers naturels en base 2 Règles : 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10 => je pose 0 et je retiens 1 1 + 1 + 1 = 11 => je pose 1 et je retiens 1 retenue (carry en anglais) M entier représenté sur n bits (M [0, 2 n -1]) Lorsque la somme de 2 entiers naturels codés sur n bits n est pas représentable sur n bits, on dit qu il y a dépassement de capacité (overfow) sur entiers naturels 13

Addition en base 2 : exemples En binaire sur 4 bits 0 1 0 0 + 0 0 1 1 0 1 1 1 1 1 1 0 0 + 1 1 1 0 1 1 0 1 0 1 0 1 1 1 0 + 0 0 1 1 1 0 0 1 dépassement de capacité sur entiers naturels 14

Bonus Addition en base 16 : exemple En hexadécimal sur 16 bits 0 D 2 4 + 5 2 9 2 5 F B 6 1 1 F A 8 + 7 3 4 2 9 2 E A 5 1 6 5 3 + C 2 E 5 1 1 9 3 8 dépassement de capacité sur entiers naturels 15

Bonus Circuit additionneur additionneur 1 bit a i b i r_out i + r_in i s i Table de vérité a i b i r_in i s i r_out i 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 Additionneur 4 bits : s 3 s 2 s 1 s 0 = a 3 a 2 a 1 a 0 + b 3 b 2 b 1 b 0 a 3 b 3 a 2 b 2 a 1 b 1 r_out 3 + + + a 0 b 0 r_in0 = 0 + s 3 s 2 s 1 s 0 overflow si r_out 3 = 1 (cas des entiers naturels) 16

Règles : Soustraction en base 2 0-0 = 0 1-0 = 1 1-1 = 0 0-1 => je prête une «deuzaine» à 0 qui devient 10, sans oublier de retrancher la «deuzaine» au nombre de gauche, puis je pose 1 Lorsque le nombre à soustraire est plus grand que le nombre auquel on le soustrait, on obtient un dépassement de capacité sur entiers naturels 17

Soustraction en base 2 : exemples En binaire sur 4 bits 0 1 1 1 1 0-0 1 0 1 1 1 0 0 1 1 1 1 1 1 1 0 0-1 1 1 1 1 0 1 1 1 0 1 1 0 1 0-1 0 1 0 0 0 1 1 0 dépassement de capacité sur entiers naturels 18

Bonus Soustraction en base 16 : exemples En hexadécimal sur 16 bits C 6 5 1 3-1 2 1 4 5 B 4 0 E 1 1 F A 8-1 7 2 4 2 A D 6 6 5 C E 7-3 1 4 2 2 B A 5 dépassement de capacité sur entiers naturels 19

Bonus Exemples : addition d entiers naturels En binaire sur 4 bits : 0101+1010= 0101+0101= 1010+0110= 1100+1001= En hexadécimal sur 16 bits : AB82+1532= 1234+5684= 7F13+2305= 2531+E4CD= 20

Entiers relatifs Comment représenter les nombres négatifs? Représentation quotidienne (signe : 1 bit, valeur absolue : un entier naturel sur les bits restants) signe et valeur absolue (sign and magnitude) -3 inadaptée car : - 2 zéros!! + 0 et -0 - opérations «difficiles» signe valeur absolue scomment réaliser les opérations (comme l addition, la soustraction, et la multiplication) sur les entier relatifs représentés en «signe+valeur absolue»? 21

Représentation binaire «complément à 1» La représentation de l opposé M d un nombre M est obtenue à partir de la représentation de M en complémentant chaque bit (opération ~ du langage C) Exemple: 7 10 = 00111 2-7 10 = 00111 2 = 11000 2 Note : les nombres positifs commencent par 0, les nombres négatifs commencent par 1 00000 00001... 01111 10000... 11110 11111 Que représente -00000? Combien de nombres positifs peut-on représenter sur n bits? Combien de nombres négatifs? sopérations sur les entiers relatifs représentés en binaire complément à 1? 22

Représentation binaire «complément à 2» (1/3) En binaire complément à 2 (que des fois nous abrégerons par C 2 ), un nombre M représenté sur n bits par c n-1 c n-2... c 2 c 1 c (où c 0 i =0, ou c i =1) a la valeur: M n 2 i= 0 = c 2 n 1 + c 2 n 1 i M est positif ou nul si c n-1 = 0 M est négatif si c n-1 = 1 c n-1 indique le signe (mais est plus qu un bit de signe) Exemples sur 3 bits 000 b = 0 d 010 b = 2 d 100 b = -2 2 = -4 d i 101 b = -2 2 +1 = -3 d 23

Représentation binaire «complément à 2» (2/3) Taille bornée des nombres stockés : la représentation en complément à 2 sur n bits permet de représenter les nombres sur l intervalle : [-2 n-1,2 n-1-1] un nombre négatif «en plus»! [ ] -2 n-1 0 2 n-1-1 son opposé n est pas représentable sur n bits Exemples : Sur 3 bits, on peut représenter les nombres compris entre -4 et 3 Sur 4 bits, on peut représenter les nombres compris entre -8 et 7 24

25 Représentation binaire «complément à 2» (3/3) Opposé d un entier relatif l opposé de X noté op_x est tel que X+op_X =0 soit X sur n bits, on a donc 1 2 2 1 1 1 1 2 0 1 0 2 1 0 2 1 = + = = + = = = n i i n i n n i n n X X a a a a X a a a a X L L L L L L _ +1 = X X op

Complément à 2 : exemples En binaire complément à 2 sur 3 bits : X = 000 b, X = 111 b, op_x = 000 b X = 001 b, X = 110 b, op_x = 111 b X = 010 b, X =, op_x = X = 011 b, X =, op_x = X = 101 b, X =, op_x = X = 111 b, X =, op_x = En utilisant une notation «hexadécimal» sur 8 bits : X = 3B h, X = C4 h, op_x = C5 h X = 8F h, X =, op_x = X = 66 h, X =, op_x = nombre en complément à 2 (chaque quartet est remplacé par le chiffre hexadécimale correspondant) 26

Complément à 2 : une astuce pour calculer l opposé Une technique souvent utilisée pour calculer l opposé d un entier relatif : recopier de tous les bits de droite vers la gauche jusqu au premier 1 inclus «complémenter» tous les autres bits Exemples en binaire sur 3 bits : X = 000 b, op_x = 000 b X = 001 b, op_x = 111 b X = 010 b, op_x = X = 011 b, op_x = X = 101 b, op_x = X = 111 b, op_x = Pourquoi ça marche? (exercice) 27

Complément à 2 : extension Extension : un nombre représenté sur p bits peut être représenté sur n>p bits en introduisant la valeur du bit de rang p-1 sur les bits de rang p à n-1 Exemples : nombres représentés sur 4 bits N 1 = 0110 b. Son extension sur 8 bits donne N 1 = 0000 0110 b N 2 = 0001 b. Son extension sur 8 bits donne N 2 = 0000 0001 b N 3 = 1001 b. Son extension sur 8 bits donne N 3 = 1111 1001 b N 4 = 1101 b. Son extension sur 8 bits donne N 4 = 1111 1101 b N 5 = 7 h. Son extension sur 8 bits donne N 5 = 07 h N 6 = A h. Son extension sur 8 bits donne N 6 = FA h Pourquoi ça marche? (exercice) 28

Complément à 2 : addition Méthode identique à celle utilisée pour les entiers naturels (sauf pour le débordement de capacité) Exemples en binaire sur 4 bits : 4 d +3 d = 0100 + 0011 = 0111 = 7 7 h +2 h = -2 d +-5 d = 8 h +A h = -4+(-8) = 29

Complément à 2 : soustraction Pour effectuer la soustraction entre deux entiers relatifs, on calcule l opposé du nombre à soustraire et on effectue l addition avec l opposé Exemples en binaire sur 4 bits : 7 d -3 d = 0111 0011 = 0111 + 1101 = 0100 = 4 6 h -4 h = 2 d -5 d = -2-(-5) = -4-(-8) = 30

Addition en binaire «complément à 2» : dépassement de capacité (1/2) Il y a dépassement de capacité sur entiers relatifs lorsque la somme de deux entiers de même signe donne un entier de signe différent on obtient un résultat que l on ne peut pas représenter (car valeur absolue trop grande) Exemples en binaire sur 4 bits : 7 d +2 d = 0111 + 0010 = 1001 = -7! -5 d +(-4 d )= 5 d -(-4 d )= 31

Addition en binaire «complément à 2» : dépassement de capacité (2/2) cas positif cas négatif r_out n-2 r_out n-1 1 0 a n-2 a n-3 a 0 0 b n-2 b n-3... b 0 --------------------- 1 s n-2 s n-3... s 0 1 a n-2 a n-3 a 0 1 b n-2 b n-3... b 0 --------------------- 1 0 s n-2 s n-3... s 0 Détection du dépassement de capacité sur entiers relatifs : r_out n-1 = r_out n-2? débordement de capacité ssi les deux dernières retenues sortantes (r_out n-1 = r_out n-2 ) sont différentes? démonstration? (exercice) 32

Bonus Exemples : opérations en binaire C 2 En binaire sur 4 bits : 0101+1010= 0101+0101= 1010+0110= 1100+1001= 1100+1001= En notation hexadécimal sur 16 bits : AB82+1532= 1234+5684= 7F13+2305= 2531+E4CD= 2531-E4CD= 33

Les nombres «réels» représentation à virgule fixe une partie entière une partie fractionnaire représentation à virgule flottante (norme IEEE 754) 34

Virgule fixe : passage base 10 base 2 division successives du nombre par 2 pour la partie entière Bit poids faible 20 2 0 10 2 0 5 2 1 2 2 0 1 2 1 0 Bit poids fort 20 10 = 10100 2 multiplications successives du nombre par 2 pour la partie fractionnaire 0,375 * 2 = 0, 75 0,75 * 2 = 1, 5 0,5 * 2 = 1 0,375 10 = 0.011 2 20,375 10 = 10100,011 2 Remarques la représentation en base 2 n'est pas forcément finie (exemple 0,210) limitation du nombre de bits => il faut arrondir 35

Représentation en virgule flottante Un nombre est représenté en virgule flottante dans la base B s il est mis sous la forme : ±M1,M2 B c où M1,M2 est appelé la mantisse du nombre, c est la caractéristique ou exposant Un nombre a plusieurs représentation en virgule flottante : +59,4151x10-5 = +0,0594151x10-2 = +59 4151x10-9 Un nombre représenté en virgule flottante est normalisé s il est sous la forme ±0,M B c où M est un nombre dont le premier chiffre est non nul En binaire M commence donc toujours par 1 Exemples : +59,4151x10-5 et +0,0594151x10-2 +0,594151x10-3 -10,1001x2 3 et -0,0101001x2 6-0,101010x2 5 36

«Nombres flottants» : norme IEEE 754 Format simple précision Nombre à représenter : (-1) s M 2 c (voir cas particuliers plus loin) 0 + 1 - puissance de 2 + 127 10 s c M en base 2 1 8 23 bits 32 bits M est mis sous la forme 1,M où M est un nombre binaire quelconque sur 23 bits on parle de pseudo mantisse le 1 précédant la virgule n est pas codé en machine et est appelé bit caché s est le signe du nombre (0 pour +, 1 pour -) c est la représentation de l exposant c en biaisé excès 127 ( c est translaté de 127 10 pour représenter l intervalle [-127,+128] par l intervalle [0, 255]) Utilisé pour représenter le type float de C 37

IEEE 754 simple précision : Représentation de l exposant Représentation binaire biaisé excès 127 : exposant (c) valeur stockée (c ) -127 00000000-126 00000001... 0 01111111 +1 10000000... i... (i+127) 2 +128 11111111 38

Norme IEEE 754 : exemple Représentons le nombre -10,125 10 au format IEEE 754 simple précision 1. 10,125 10 = 1010,001 2 = 1,010001 2 x 2 3 2. l exposant c=3 est translaté de la valeur 127 c = 130 10 = 10000010 2 3. le signe du nombre est négatif, donc s vaut 1 1 10000010 01000100000000000000000 signe (1bit) exposant en excès 127 (8bits) mantisse (23bits) + un bit caché à 1 39

Norme IEEE 754 : cas particuliers Nombres «dénormalisés» : l exposant c = 0 (c=-127) est réservé pour représenter 0 et les petits nombres. le 0 est représenté par : c =0 et M =0 et pas de bit caché à 1 0 00000000 00000000000000000000000 Représentation pour très petits nombres : c = 0, M 0 (nombre représenté : 0,M 2-126 ) L infini (- et + ) et les erreurs : c = 255 10 (c= +128) Infini : c =255 10 et M =0 ( S=0 +, s=1 - ) s 11111111 00000000000000000000000 Erreurs (NaN : Not a Number) : c =255 10, M 0 et s quelconque s 11111111 M 0 s En langage C, pourquoi y a-t-il un peu moins de nombres de type float que de nombres de type int? 40

Norme IEEE754 : précision 24 bits de mantisse sont équivalents à un peu plus de 7 chiffres décimaux! log 24 10 Si on veut représenter π: 3,1415926535897932384626433832795... on ne peut que le représenter par : 3,141592 (en tronquant) 3,141593 (en arrondissant) 2 7,2 41

Dépassement de capacité (overflow) Comme pour les entiers, possibilité de dépassement de capacité 1,111111 2 127 + 1,111111 2 127 11,111110 2 127 1,1111110 2 128 + 42

Dépassement de capacité (underflow) Les nombres peuvent aussi être trop petits: 0,100000 2-126 1,000000 2 26 1.0 2-151 0, 000000000000000000000001 2-127 0 43

Addition de nombres en virgule flottante En 5 étapes : 1. Ramener les 2 nombres au même exposant («dénormaliser») 2. Additionner les mantisses 3. Ajuster la mantisse (et l exposant) pour avoir un bit avant la virgule («renormaliser») 4. Arrondir ou tronquer à la précision requise 5. Vérifier qu il n y a pas dépassement de capacité 44

Précision des nombres flottants : IEEE 754 Les différents formats : signe exposant biaisé mantisse simple précision» sur 32 bits» 1 bit de signe» exposant sur 8 bits (biaisé excès 127)» mantisse sur 23 bits+ 1 bit caché» cas général : de 1,17 10-38 à 3,40 10 38» nombres dénormalsés : jusqu à 1,40 10-45 double précision» sur 64 bits» 1 bit de signe» exposant sur 11 bits (biaisé excès 1023)» mantisse sur 52 bits+1bit caché» cas général : de 2,2 10-308 à 1,8 10 308» nombres dénormalisés : jusqu à 5 10-324 utilisé pour le type double de C précision étendu» sur 80 bits» exposant sur 15 bits,» mantisse sur 63 bits 45

Bonus Code ASCII (voir www.lookuptables.com pour d autres codes) 46