Architecture Logicielle et matérielle

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

Représentation d un entier en base b

Représentation des Nombres

Conversion d un entier. Méthode par soustraction

Logiciel de Base. I. Représentation des nombres

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

Chapitre 10 Arithmétique réelle

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

IFT2880 Organisation des ordinateurs et systèmes

Les opérations binaires

Licence Sciences et Technologies Examen janvier 2010

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

Algorithme. Table des matières

Une version javascript sera disponible directement dans le cours prochainement.

Informatique Générale

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

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

Architecture de l ordinateur

Cours Informatique 1. Monsieur SADOUNI Salheddine

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


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

Rappels Entrées -Sorties

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

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

Algorithmique & Langage C IUT GEII S1. Notes de cours (première partie) cours_algo_lgc1.17.odp. Licence

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS Sommaire

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Mathématiques appliquées à l informatique

Numérisation du signal

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

Présentation du langage et premières fonctions

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)

Initiation. àl algorithmique et à la programmation. en C

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

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

Présentation du cours

Introduction à l étude des Corps Finis

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

ALGORITHMIQUE ET PROGRAMMATION En C

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

Architecture des ordinateurs Introduction à l informatique

Continuité et dérivabilité d une fonction

Chapitre 1 I:\ Soyez courageux!

STAGE IREM 0- Premiers pas en Python

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

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


DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

1 Introduction au codage

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

Glossaire des nombres

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

ET LO GICIEL D UN S YS T EME IN FORMATIQUE

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

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

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

Introduction à l algorithmique et à la programmation (Info 2)

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

CQP 112 Introduc/on à la programma/on. Thème 2 : Architecture d un système informa/que. Département d informa/que

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Analyse de sécurité de logiciels système par typage statique

Chap17 - CORRECTİON DES EXERCİCES

Plan du cours. Historique du langage Nouveautés de Java 7

Chapitre 13 Numérisation de l information

Architecture matérielle des systèmes informatiques

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

TP 1. Prise en main du langage Python

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

Algorithmique et Programmation, IMA

Priorités de calcul :

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

Programmation en langage C

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

I- Définitions des signaux.

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

ASR1 TD7 : Un microprocesseur RISC 16 bits

Découverte de Python

Projet Matlab : un logiciel de cryptage

Le langage C. Introduction, guide de reference

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

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

Cours d Algorithmique et de Langage C v 3.0

Cours 7 : Utilisation de modules sous python

Raisonnement par récurrence Suites numériques

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

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

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

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

DM 1 : Montre Autoquartz ETA

Le codage informatique

Unités, mesures et précision

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

Initiation à la programmation en Python

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

Architecture des ordinateurs

Structure du format BMP, sa lecture, sa construction et son écriture

Transcription:

Architecture Logicielle et matérielle Cours 2 : codage de l information D après les transparents de N. Louvet (univ Lyon1) et J. Dequidt (univ Lille1) Laure Gonnord http://laure.gonnord.org/pro/teaching/ Laure.Gonnord@univ-lyon1.fr Licence d info - Université Lyon 1 - FST

Plan 1 Rappels sur les unités de mesure 2 Codage des entiers naturels Opérations arithmétiques binaires Représentation machine des entiers naturels 3 Codage des entiers relatifs 4 Codage des nombres rationnels 5 Codage des flottants Norme IEEE-754 Digression IMPORTANTE sur les erreurs d arrondis 6 Codage des caractères 7 Conclusion Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 2 / 64

Rappels sur les unités de mesure 1 Rappels sur les unités de mesure 2 Codage des entiers naturels 3 Codage des entiers relatifs 4 Codage des nombres rationnels 5 Codage des flottants 6 Codage des caractères 7 Conclusion Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 3 / 64

Rappels sur les unités de mesure Longueur/Durée grandeur unité symbole longueur mètre m durée seconde s Fréquence Nombre de fois qu un phénomène périodique se reproduit par unité de temps. L unité de fréquence est le Hertz. 1Hz=1machin par seconde. frequence = 1 periode Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 4 / 64

Rappels sur les unités de mesure Bit/octet Bit L unité fondamentale d information en informatique est le bit, pouvant prendre comme valeur 0 ou 1. Un octet (en anglais Byte (B) est une suite de 8 bits consécutifs. Mesure souvent la quantité de mémoire. Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 5 / 64

Rappels sur les unités de mesure Préfixes du systèmes international d unités (SI) préfixe symbole puissance français de 10 péta P 10 15 téra T 10 12 giga G 10 9 méga M 10 6 kilo k 10 3 10 0 milli m 10 3 micro µ 10 6 nano n 10 9 pico p 10 12 Ex : 10000 Hz = 10 10 3 Hz = 10 khz. 10 5 s = 10 10 6 s = 10 µs. Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 6 / 64

Rappels sur les unités de mesure Préfixes binaires Mémoire d un ordi : puissances de 2. On utilise abusivement les préfixes SI les plus proches. Ex : 1024 octets est souvent abusivement noté 1 ko. La norme CEI-60027-2 définit des préfixes binaires pour éviter la confusion. préfixe symbole préfixe symbole puissance puissance de 10 courant courant standardisé standardisé de 2 la plus proche téra T tébi Ti 2 40 10 12 giga G gibi Gi 2 30 10 9 méga M mébi Mi 2 20 10 6 kilo k kibi ki 2 10 10 3 2 0 10 0 Ex : 1024 octets = 1 kibi-octet = 1 kio. Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 7 / 64

Codage des entiers naturels 1 Rappels sur les unités de mesure 2 Codage des entiers naturels Opérations arithmétiques binaires Représentation machine des entiers naturels 3 Codage des entiers relatifs 4 Codage des nombres rationnels 5 Codage des flottants 6 Codage des caractères Laure Gonnord 7 Conclusion (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 8 / 64

Codage des entiers naturels Valeur vs représentation On parle des entiers dans N (positifs ou nuls) Entier définition (Peano) cinq est défini par 1 + 1 + 1 + 1 + 1. On peut le représenter de différentes manières : Avec des petits batons : 11111 En notation positionnelle en base 10 : 5 En base 2 : 101 Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 9 / 64

Codage des entiers naturels Notation positionnelle en base β Théorème Soit β N, β > 1, une base. Tout n N peut être représenté de manière unique par une expression de la forme p 1 (x p 1 x p 2 x 1 x 0 ) β = x i β i avec 0 x i < β. Exemples : 156 avec β = 10 : 156 =... 1101 avec β = 2 : 1101 =... i=0 Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 10 / 64

Codage des entiers naturels Notation positionnelle : poids faible, poids fort Dans (5140) 10 : Il y a 4 chiffres donc p =... Le chiffre de poids faible (LSB) est... Le chiffre de poids fort (MSB) est... La position du chiffre 1 (ou rang) est... Attention, on lit/compte de droite à gauche, en commençant par le rang 0 Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 11 / 64

Codage des entiers naturels Une petite table à remplir pour la route valeur rep. rep. rep. décimale binaire octale hexadécimale 0 0 0 0 1 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 7 7 7 8 8 9 9 10 11 12 13 14 15 16 Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 12 / 64

Codage des entiers naturels Passer d une base à une autre : Binaire vers décimal Sur l exemple n = (10100) 2 : chiffre 1 0 1 0 0 position 4 3 2 1 0 poids 2 4 2 3 2 2 2 1 2 0 Donc (10100) 2 = p 1 i=0 x i2 i =... On a utilisé la définition de la décomposition en base 2 et on a calculé en base 10. Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 13 / 64

Codage des entiers naturels Passer d une base à une autre par divisions successives Propriété Le reste dans la division euclidienne d un entier naturel n par β donne le chiffre de poids faible dans la représentation de n en base β. En effet : n = x p 1 β p 1 + x p 2 β p 2 + + x 2 β 2 + x 1 β 1 + x 0, = ( x p 1 β p 2 + x p 2 β p 3 + + x 2 β 1 ) + x 1 β + x 0 }{{} quotient avec 0 x 0 < β. à retenir : n mod β = x 0 }{{} reste Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 14 / 64,

Codage des entiers naturels Passer d une base à une autre par divisions successives : exemple décimal vers binaire 1/2 Exemple : (43) 10 en base β = 2? On sait que x 0 = 43 mod 2 = 1 (43 est impair!) Comment trouver x 1? on recommence sur le quotient! 43 2 = 21, donc x 1 = 21 mod 2... On s arrête quand? lorsque le quotient est < 2! Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 15 / 64

Codage des entiers naturels Passer d une base à une autre par divisions successives : exemple décimal vers binaire 2/2 Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 16 / 64

Codage des entiers naturels Passer d une base à une autre par division Exercices : Convertir n = (3452) 10 en octal (base 8). Convertir n = (444) 10 en hexadecimal (base 16). Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 17 / 64

Codage des entiers naturels Changement de bases faciles 1/3 Questions : Que vaut (1215) 10 en base 100? Que vaut (1A) 16 en base 8? Une règle générale on regroupe! Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 18 / 64

Codage des entiers naturels Changement de bases facile 2/3 : 2 8 On fait un tableau de conversion entre nombres binaires et chiffres octaux : rep. chiffre rep. chiffre binaire octal binaire octal 000 0 100 4 001 1 101 5 010 2 110 6 011 3 111 7 Avec n = (34521) 8 : n = (011 100 101 010 001) 2 = (11100101010001) 2. L inverse est laissé au lecteur! Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 19 / 64

Codage des entiers naturels Changement de bases facile 3/3 : Justif 2 8 Si on considère l écriture d un entier n en base 2 : n = (x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1 x 0 ) 2 = x 8 2 8 + x 7 2 7 + x 6 2 6 +... = (x 8 2 2 + x 7 2 + x 6 ) 2 6 +... = (x 8 x 7 x 6 ) 2 8 2 + (x 5 x 4 x 3 ) 2 8 + (x 2 x 1 x 0 ) 2. Inversement, si on considère l écriture d un entier n en octal : n = (y 2 y 1 y 2 ) 8 = (x 8 x 7 x 6 ) 2 8 2 + (x 5 x 4 x 3 ) 2 8 + (x 2 x 1 x 0 ) 2 = (x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1 x 0 ) 2. Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 20 / 64

Codage des entiers naturels Opérations arithmétiques binaires 1 Rappels sur les unités de mesure 2 Codage des entiers naturels Opérations arithmétiques binaires Représentation machine des entiers naturels 3 Codage des entiers relatifs 4 Codage des nombres rationnels 5 Codage des flottants Norme IEEE-754 Digression IMPORTANTE sur les erreurs d arrondis 6 Codage des caractères 7 Conclusion Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 21 / 64

Codage des entiers naturels Opérations arithmétiques binaires Addition Scoop : comme en base 10, chiffre par chiffre avec retenue! Table d addition à compléter : + 0 1 0 1 Ex : Ajouter (1101101) 2 et (110101) 2. 1 1 0 1 1 0 1 + 1 1 0 1 0 1 Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 22 / 64

Codage des entiers naturels Opérations arithmétiques binaires Soustraction Ex : 42 9 en base 10. 4 2 9 Faire attention à ce que signifie la retenue! Ex : Soustraire (111101) 2 à (1101001) 2. 1 1 1 1 0 1 1 1 0 0 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 0 0 Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 23 / 64

Codage des entiers naturels Opérations arithmétiques binaires Multiplication - Division Laissé au lecteur Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 24 / 64

Codage des entiers naturels Représentation machine des entiers naturels 1 Rappels sur les unités de mesure 2 Codage des entiers naturels Opérations arithmétiques binaires Représentation machine des entiers naturels 3 Codage des entiers relatifs 4 Codage des nombres rationnels 5 Codage des flottants Norme IEEE-754 Digression IMPORTANTE sur les erreurs d arrondis 6 Codage des caractères 7 Conclusion Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 25 / 64

Codage des entiers naturels Représentation machine des entiers naturels Représentation machine 1/3 Tout est fini/borné. On fixe le nombre de chiffres p de la représentation positionnelle (Machines 32 bits/64 bits). Problème Et si le résultat d une opération ne peut pas être représenté? Le résultat stocké : p bits de poids faibles du résultat. Un mécanisme d alerte est levé (drapeau de dépassement de capacité de l ALU, voir plus tard). On continue (le résultat peut être exploité). Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 26 / 64

Codage des entiers naturels Représentation machine des entiers naturels Représentation machine 2/3 : troncature Propriété importante Lorsqu on effectue une opération arithmétique entre entiers naturels, et que l on représente le résultat sur p bits, le résultat obtenu est le reste dans la division euclidienne du résultat exact par 2 p. En effet : Soit m un entier codé sur q p bits : q 1 q 1 p 1 m = m i 2 i = m i 2 i p 2 p + m i 2 i. i=0 i=p }{{} quotient de m par 2 p i=0 } {{ } reste Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 27 / 64

Codage des entiers naturels Représentation machine des entiers naturels Représentation machine 3/3 : exemple Exemple avec p = 3. On ajoute (7) 10 = (111) 2 et (5) 10 = (101) 2 : Le résultat exact est (12) 10 = (1100) 2. Le résultat calculé en machine sur 3 bits sera (100) 2 = (4) 10 : on a bien 12 mod 2 3 = 4. Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 28 / 64

Codage des entiers relatifs 1 Rappels sur les unités de mesure 2 Codage des entiers naturels 3 Codage des entiers relatifs 4 Codage des nombres rationnels 5 Codage des flottants 6 Codage des caractères 7 Conclusion Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 29 / 64

Codage des entiers relatifs Problématique Question : Comment différencier un entier positif d un entier négatif? Rappels : On précise la taille des nombres (p) On dispose des chiffres 0 et 1 Sur p bits, on peut coder 2 p valeurs. Dans la suite on prend p = 8 donc... valeurs possibles. Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 30 / 64

Codage des entiers relatifs Solution 1 et limitations Principe : Introduire un bit qui correspond au signe (ici le MSB) : 0 valeur positive 1 valeur négative. Les valeurs représentées appartiennent donc à intervalle [ 2 n 1, 2 n 1 ]. Mais : Deux représentations du 0 : (1000000) et (00000000). Addition non évidente. Faire Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 31 / 64

Codage des entiers relatifs Solution 2 : complément à 1 Principe : inverser les bits de la représentation en base 2 du nombre positif correspondant : (5) 10 codé par (00000101) 2 ( 5) 10 codé par (10000010) le MSB est bien le signe... Mais : Mêmes limitations. Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 32 / 64

Codage des entiers relatifs Solution 3 : complément à 2 Principe : Codage classique pour les entiers positifs. Complément à 1 et ajout de 1 pour les négatifs. Noté (xxx) 2. Exemple : ( 25) 10 en complément à 2 : (25) 10 = (00001001) 2 complément à 1 = (11110110) 2 donc (25) 10 =... Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 33 / 64

Codage des entiers relatifs Complément à 2 - Définition formelle Définition La décomposition en complément à 2 de l entier relatif n est défini par l unique décomposition suivante p 2 (c p 1 c p 2... c 1 c 0 ) 2 = c p 1 2 p 1 + c i 2 i On peut montrer que : { n 0 ssi c p 1 = 0, n < 0 ssi c p 1 = 1. i=0 Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 34 / 64

Codage des entiers relatifs Complément à 2 - conversion vers décimal relatif Une manière d interpréter le codage en complément à 2 est donc de considérer que le bit le plus à gauche a un poids négatif ( 2 p 1 ). Ex : valeur décimale codée par (10000011) 2? rang 7 6 5 4 3 2 1 0 poids 128 64 32 16 8 4 2 1 valeur 1 0 0 0 0 0 1 1 Donc (10000011) 2 = 128 + 1 + 2 = ( 125) 10. Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 35 / 64

Codage des entiers relatifs Complément à 2 - Opérations Les opérations se passent comme en base 2 classique! Exemple de l addition : (voir TD) On ajoute les opérandes comme s il s agissait d entiers naturels. Dépassement de capacité ssi opérandes de même signe ET résultat de signe différent. Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 36 / 64

Codage des nombres rationnels 1 Rappels sur les unités de mesure 2 Codage des entiers naturels 3 Codage des entiers relatifs 4 Codage des nombres rationnels 5 Codage des flottants 6 Codage des caractères 7 Conclusion Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 37 / 64

Codage des nombres rationnels Problématique Représentation binaire des nombres rationnels Q : p, avec p Z et q N {0}. q Comment représenter 1 4, 12 3...? Sous-problème : représenter la partie fractionnaire. Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 38 / 64

Codage des nombres rationnels Représenter des fractions Idée : notion de puissance négative : 1 2 = 10 20 = 10 = 5 10 1 en base 10. 2 10 2 1 4 = 1 = 1 2 2 représenté par 0.01 en base 2. 2 2 1 3 = 3.10 1 + 3 10 2 +... = 0.33333333... en base 10 Quelle que soit la base b, il existe des rationnels avec une écriture infinie (cela dit, elle est périodique). On note alors (0.3) 10 en soulignant la période. Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 39 / 64

Codage des nombres rationnels Deux méthodes pour arriver au résultat - Méthode 1 (base 10) On a 625 = 5 4, donc 1267 625 = 1267 1267 24 5 4 = 10 4 = 20272 10 4 = 2 104 + 2 10 2 + 7 10 1 + 2 10 4 = 2 10 0 + 2 10 2 + 7 10 3 + 2 10 4 = (2, 0272) 10. Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 40 / 64

Codage des nombres rationnels Deux méthodes pour arriver au résultat - Méthode 2 (base 10 toujours) 1 3 7 6 0 1, 85714285... 4 0 5 0 1 0 3 0 2 0 6 0 4 0 Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 41 / 64

Codage des nombres rationnels Opérations / changement de base Opérations arithmétiques : On aligne les virgules! Exemple : 4.75 + 7.5 en base 2. Changement de base : algorithme symétrique à la partie entière par multiplications sucessives on s arrête lorsque? Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 42 / 64

Codage des nombres rationnels Changement de base - exemple Traduire 1 10 en binaire : 1/10 2 = 0 + 2/10 2/10 2 = 0 + 4/10 4/10 2 = 0 + 8/10 8/10 2 = 1 + 6/10 6/10 2 = 1 + 2/10 0, 0 0 0 1 1 On en déduit que (0, 1) 10 = (0, 00011) 2. Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 43 / 64

Codage des nombres rationnels Mais! Truandage, comment fait-on pour représenter la virgule? on fixe arbitrairement (2 chiffres, trois, etc) représentation à virgule fixe. Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 44 / 64

Codage des flottants 1 Rappels sur les unités de mesure 2 Codage des entiers naturels 3 Codage des entiers relatifs 4 Codage des nombres rationnels 5 Codage des flottants Norme IEEE-754 Digression IMPORTANTE sur les erreurs d arrondis 6 Codage des caractères Laure Gonnord 7 Conclusion (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 45 / 64

Codage des flottants Norme IEEE-754 1 Rappels sur les unités de mesure 2 Codage des entiers naturels Opérations arithmétiques binaires Représentation machine des entiers naturels 3 Codage des entiers relatifs 4 Codage des nombres rationnels 5 Codage des flottants Norme IEEE-754 Digression IMPORTANTE sur les erreurs d arrondis 6 Codage des caractères 7 Conclusion Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 46 / 64

Codage des flottants Norme IEEE-754 Besoin Les grands nombres nécessitent un très grand nombre de bits pour être représentés (coûteux en mémoire) Le système précédent n est pas réaliste. Utilisons la notation scientifique (ou virgule flottante : n = S M 2 e Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 47 / 64

Codage des flottants Norme IEEE-754 La norme IEEE-754 1/2 La norme IEEE-754 a été introduite en 1985, et a été révisée en 2008. c = s code de l exposant : c e code de la mantisse : c m 1 bit k bits p 1 bits La valeur codée (hors valeurs exceptionnelles) est avec f(c) = ( 1) s(c) m(c) 2 e(c) s(c) = s le signe du flottant. m(c) = (1, c m ) 2, ce qui signifie que le 1 de tête est codé implicitement. e(c) dépend de (c e ) 2, mais doit être interprété avec précautions... Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 48 / 64

Codage des flottants Norme IEEE-754 La norme IEEE-754 2/2 c = s code de l exposant : c e code de la mantisse : c m 1 bit k bits p 1 bits Informations supplémentaires : Simple précision : 1bit de signe, 8 d exposant, 23 de mantisse Double précision : 1bit de signe, 11 d exposant, 52 de mantisse La valeur réelle de l exposant est en fait e = c e + dec, avec dec = 2 k 1 1 (dec = 127 en simple, 1023 en double). On peut donc exprimer e [ 127, 128] (attention les deux valeurs extrêmes sont réservées). Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 49 / 64

Codage des flottants Norme IEEE-754 La norme IEEE-754 Exemples En 32 bits, représenter : 128-32.75 18.125 Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 50 / 64

Codage des flottants Norme IEEE-754 Nombres particuliers Il y a des cas particuliers : 0 : E dec = 0, M = 0, S = 0 ou 1 infinis : E = 111...1 (valeur réservée), M = 0, S = 0 ou 1 not a number (permet de gérer div by 0,... ) : E = 111...1 (valeur réservée), M = 0 nombres dénormalisés : pour stocker les petites valeurs E = 0. Pour ces nombres, le bit implicite de la mantisse vaut 0. tout cela est défini précisément dans la norme. On n ira pas plus loin dans le cadre de ce cours. Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 51 / 64

Codage des flottants Norme IEEE-754 Arrondi correct La norme IEEE-754 propose 4 modes d arrondi : arrondi au plus proche : RN(r). Si r est équidistant de deux flottants consécutifs, on retourne celui dont la mantisse se termine par un 0. arrondi vers (RD), + (RU), et vers 0 (RZ). voir ex en TD. La norme impose l arrondi correct pour les opérations +, -,, / et : le résultat calculé doit être le résultat exact arrondi selon le mode d arrondi courant. L arrondi au plus proche est en général le mode d arrondi par défaut. Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 52 / 64

Codage des flottants Digression IMPORTANTE sur les erreurs d arrondis 1 Rappels sur les unités de mesure 2 Codage des entiers naturels Opérations arithmétiques binaires Représentation machine des entiers naturels 3 Codage des entiers relatifs 4 Codage des nombres rationnels 5 Codage des flottants Norme IEEE-754 Digression IMPORTANTE sur les erreurs d arrondis 6 Codage des caractères 7 Conclusion Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 53 / 64

Codage des flottants Digression IMPORTANTE sur les erreurs d arrondis Deux mots sur les erreurs d arrondi Même si les opérations respectent la norme, chaque opération flottante rajoute une erreur d arrondi par rapport au résultat théorique. De plus les entrées d un programme ne sont pas toujours représentées exactement. Ce qui est ennuyeux, c est que ces erreurs s ajoutent. Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 54 / 64

Codage des flottants Digression IMPORTANTE sur les erreurs d arrondis Exemples en C Ex1 : On compile le programme C suivant sur un Intel Core 2 Duo : #include <stdio.h> int main(void) { int i; float x = 0, y = 0.1; for(i=1; i<= 100000; i++) x += y; printf("résultat : %8.3f\n", x); return(0); } A l exécution, on obtient : Résultat : 9998.557 Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 55 / 64

Codage des flottants Digression IMPORTANTE sur les erreurs d arrondis Erreurs d arrondi 2 On évalue le polynôme p(x) = x 9 18x 8 +144x 7 672x 6 +2016x 5 4032x 4 +5376x 3 4608x 2 +2304x 512 au voisinage de x = 2, exactement : 1.5e-10 1e-10 Exact value 5e-11 0-5e-11-1e-10-1.5e-10 1.92 1.94 1.96 1.98 2 2.02 2.04 2.06 2.08 Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 56 / 64

Codage des flottants Digression IMPORTANTE sur les erreurs d arrondis Erreurs d arrondi 2 On évalue le polynôme p(x) = x 9 18x 8 +144x 7 672x 6 +2016x 5 4032x 4 +5376x 3 4608x 2 +2304x 512 au voisinage de x = 2, en arithmétique double précision : 1.5e-10 1e-10 Horner algorithm Exact value 5e-11 0-5e-11-1e-10-1.5e-10 1.92 1.94 1.96 1.98 2 2.02 2.04 2.06 2.08 Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 56 / 64

Codage des flottants Digression IMPORTANTE sur les erreurs d arrondis En python cette fois >>> 1. / 3**6 0.0013717421124828531 >>> (1. / 3**6) * 3**6 0.9999999999999999 >>> 0.1+0.1 0.2 >>> 0.1+0.1 == 0.2 True >>> x=1 >>> y=-1 >>> z=2**(-55) >>> (x+y)+z 2.7755575615628914e-17 >>> x+(y+z) 0.0 >>> print(0.1+0.1+0.1) 0.3 >>> 0.1+0.1+0.1 == 0.3 False >>> 0.1+0.1+0.1 0.30000000000000004 On n écrira PLUS JAMAIS d égalité entre flottants! Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 57 / 64

Codage des caractères 1 Rappels sur les unités de mesure 2 Codage des entiers naturels 3 Codage des entiers relatifs 4 Codage des nombres rationnels 5 Codage des flottants 6 Codage des caractères 7 Conclusion Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 58 / 64

Codage des caractères ASCII Norme ASCII (American Standard Code for Information Interchange) (1961) 128 caractères, codés en binaire sur 7 bits, numérotés de 0 à 127 Codés sur 1 octet dont le MSB est 0. L ASCII comprend : des «codes de contrôle» (carriage return, form feed... ), des caractères alphanumériques (non-accentués... ), des symboles communs (+, -, *, /, <, >, =... ) Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 59 / 64

Codage des caractères Table Sous linux : man ascii permet de voir la table 7 bits : UTF-8 : codage variable (1-4 octets) permet de coder tous les alphabets. Retro-compatible avec ascii. Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 60 / 64

Conclusion 1 Rappels sur les unités de mesure 2 Codage des entiers naturels 3 Codage des entiers relatifs 4 Codage des nombres rationnels 5 Codage des flottants 6 Codage des caractères 7 Conclusion Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 61 / 64

Conclusion Conclusion sur le codage Il existe de nombreuses techniques de codage, chacune adaptée au codage d un type d information bien particulier. Nous avons vu des codages pour : les entiers naturels : représentation positionnelle ; les entiers relatifs : technique du complément à 2 ; les nombres rationnels : représentation positionnelle périodique ; les nombres à virgule flottante : norme IEEE-754 ; les caractères : table ASCIII!! Il y a d autres codages que nous n avons pas vus. Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 62 / 64

Conclusion Ce qu il faut savoir La représentation des types classiques Le cas des caractères. Le cas des réels, que des erreurs numériques sont possibles et surtout qu on ne teste jamais l égalité de deux flottants. Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 63 / 64

Conclusion Ce qu il faut savoir faire Changements de base 2,8,10,16. Conversion décimal IEEE754 dans les cas non pathologiques Additions, soustractions sur toutes les représentations. Utiliser la table ASCIII. Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 2 : Codage de l information 2014 64 / 64