Information Codage de l Information Massih-Reza Amini

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

Représentation des Nombres

Logiciel de Base. I. Représentation des nombres

Informatique Générale

Conversion d un entier. Méthode par soustraction

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

Représentation d un entier en base b

1 Introduction au codage

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

Les opérations binaires

Algorithme. Table des matières

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

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

Licence Sciences et Technologies Examen janvier 2010

Une version javascript sera disponible directement dans le cours prochainement.

IFT2880 Organisation des ordinateurs et systèmes

Le codage informatique

V- Manipulations de nombres en binaire

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

Rappels Entrées -Sorties

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

Architecture de l ordinateur

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

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

Chapitre 10 Arithmétique réelle

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

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

Introduction à MATLAB R

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

Cours Informatique 1. Monsieur SADOUNI Salheddine

Introduction à l étude des Corps Finis

TD : Codage des images

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

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

Formats d images. 1 Introduction

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

Système binaire. Algèbre booléenne

ET LO GICIEL D UN S YS T EME IN FORMATIQUE



Solutions web : instructions aux développeurs

nom : Collège Ste Clotilde

Algèbre binaire et Circuits logiques ( )

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

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

ISO/CEI NORME INTERNATIONALE

Priorités de calcul :

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

Le format OpenPGP. Traduit par : Sébastien Person. personseb@yahoo.fr. Matthieu Hautreux. matthieu.hautreux@insa-rouen.fr.

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

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

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

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies

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

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

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)

Architecture des ordinateurs Introduction à l informatique

Chapitre 1 I:\ Soyez courageux!

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

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

Structures algébriques

Présentation du langage et premières fonctions

Continuité et dérivabilité d une fonction

Architecture matérielle des systèmes informatiques

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

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

Formats de fichiers adaptés à l'archivage électronique à moyen et long terme

Cours d Informatique

I. Polynômes de Tchebychev

2 Comment fonctionne un ordinateur, dans les grandes lignes

Mathématiques appliquées à l informatique

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

Chapitre 3. Mesures stationnaires. et théorèmes de convergence

Continuité en un point

CH.6 Propriétés des langages non contextuels

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

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

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

Glossaire des nombres

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

PROJET ALGORITHMIQUE ET PROGRAMMATION II

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

I.1- DÉFINITIONS ET NOTIONS DE BASE

CCP PSI Mathématiques 1 : un corrigé

DM 1 : Montre Autoquartz ETA

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

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Programmation linéaire

Introduction à l'informatique. Vincent Boyer et Jean Méhat

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

Microprocesseur + Logiciel

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

1 Année LMD-STSM Algorithmique et Programmation. Série de TD 2

Complément d information concernant la fiche de concordance

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

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

Plan. Programmation Internet Cours 3. Organismes de standardisation

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

Transcription:

Codage de l Massih-Reza Amini Université Joseph Fourier Laboratoire d Informatique de Grenoble

2/30 Introduction Codage des entiers Codage des réels Les chaînes de caractères Table des matières 1 Introduction 2 Codage des entiers 3 Codage des réels 4 Les chaînes de caractères

3/30 Introduction Codage des entiers Codage des réels Les chaînes de caractères Programme 1. Le codage numérqiue de l information nombres entiers, réels chaînes de caractères (texte) - ASCII, Unicode, UTF8 2. La représentation de l information textuelle Texte plein, HTML, XML 3. La théorie de l information Notion probabiliste de l information Codage de source

4/30 Introduction Codage des entiers Codage des réels Les chaînes de caractères Nécessité de coder l information Un ordinateur manipule des données de différente nature : Nombres (entiers, relatifs, réels) Chaînes de caractères Objets complexes (dates, images, son,...) de taille différente qu il est nécessaire de coder de façon uniforme. Nous nous intéressons dans un premier temps aux nombres.

5/30 Introduction Codage des entiers Codage des réels Les chaînes de caractères Codage des nombres Il y a bien sûr beaucoup de façons de coder des nombres (et nous utilisons toujours plusieurs bases différentes). La présence ou l absence du charge électrique, régit la représentation de l information dans un ordinateur. La base binaire (1 ou 0), et ses dérivées, base octale et hexadécimale, sont privilégiées en informatique.

6/30 Introduction Codage des entiers Codage des réels Les chaînes de caractères Symboles utilisés : 0 et 1 Exemple Base binaire 7 10 = 1 2 2 + 1 2 1 + 1 2 0 = 111 2 Addition et soustraction (et multiplication) standard, avec la table suivante : 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 0 avec 1 retenue 0 0 = 0 0 1 = 1 avec 1 retenue 1 0 = 1 1 1 = 0 Exemples 1001 + 11 = 1101 + 1010 = 1000-1 = 1101 10 =

7/30 Introduction Codage des entiers Codage des réels Les chaînes de caractères Bases octale et hexadécimale hexadécimal {}}{ Symboles utilisés : 01234567 }{{} 89ABCDEF octal Exemples 171 10 = 2 8 2 + 5 8 1 + 3 8 0 = 253 8 171 10 = }{{} 10 16 1 + }{{} 11 16 0 = AB 16 A B

8/30 Introduction Codage des entiers Codage des réels Les chaînes de caractères Conversions entre bases (1) D une base b vers la base décimale ; N = p i=0 a ib i Multiplications et additions successives...... par la méthode de Horner : On considère le polynôme de degré p : P(x) = a px p + a p 1 x p 1 + + a 1 x + a 0 Alors, pour tout x 0, la (pseudo-)suite : u p = a p, n, p n > 0, u n 1 = a n 1 + u nx 0 est telle que : u 0 = P(x 0 ). D où l algorithme : Algorithm 1 Algorithme de Horner 1: Initialisation: n p 2: Res a n 3: repeat 4: Res a n 1 + x 0 Res 5: n n 1 6: until n = 0

9/30 Introduction Codage des entiers Codage des réels Les chaînes de caractères Conversions entre bases (2) De la base décimale vers une base b Méthode des divisions (entières) successives : 1. (q 0, r 0 ) quotient et reste de la division euclidienne de N par b 2. Pour i > 0, (q i, r i ) quotient et reste de la division euclidienne de q i 1 par b 3. q k premier quotient strictement inférieur à b obtenu de la sorte N b = q k r k r 0

10/30 Introduction Codage des entiers Codage des réels Les chaînes de caractères Conversions entre bases (3) Conversions entre binaire et octal/hexadécimal Un chiffre octal correspond à 3 chiffres binaires Un chiffre hexadécimal correspond à 4 chiffres binaires Du binaire à l octal/hexadécimal.1 On regroupe, en partant de la droite, les chiffres par paquets de 3/4, en ajoutant évtlt des 0 en tête.2 On remplace chaque paquet par son chiffre correspondant en octal/hexadécimal De l octal/hexadécimal au binaire : on remplace chaque chiffre par un paquet de 3/4 chiffres binaires que l on concatène

11/30 Introduction Codage des entiers Codage des réels Les chaînes de caractères Illustration 10110001101 en octal et hexadécimal? 254 8 en binaire, D46C 16 en binaire?

12/30 Introduction Codage des entiers Codage des réels Les chaînes de caractères Le cas des nombres réels (1) Conversion base b vers la base décimale Notation à virgule, avec puissances négatives : N b = a na n 1 a 1 a 0, a 1 a m = (a nb n + + a 0 + a 1b 1 + + a mb m ) 10

13/30 Introduction Codage des entiers Codage des réels Les chaînes de caractères Le cas des nombres réels (2) Conversion décimal vers une base b Méthode des divisions successives pour la partie entière Pour la partie fractionnaire : 1. Multiplier la partie fractionnaire par b et noter la partie entière obtenue 2. Recommencer cette opération avec la partie fractionnaire du résultat 3. Arrêter quand la précision souhaitée est obtenue (ou quand la partie fractionnaire est nulle) 4. Concaténer les parties entières obtenues dans l ordre après la virgule

14/30 Introduction Codage des entiers Codage des réels Les chaînes de caractères Illustration 12,6875 en binaire? 171,3046875 en binaire?

15/30 Introduction Codage des entiers Codage des réels Les chaînes de caractères Le cas des nombres réels (3) Conversion entre binaire et octal/hexadécimal : comme précédemment, mais depuis la gauche vers la droite après la virgule 1948, B6 16 = 0001100101001000, 10110110 2 14510, 554 8 = x 2?

16/30 Introduction Codage des entiers Codage des réels Les chaînes de caractères Les entiers positifs (naturels) Utilisation du codage binaire, avec taille fixe Chaque chiffre est un bit (atome) La taille correspond aux nombres de bits utilisés pour coder les entiers naturels Codage sur n bits : nombres de 0 à 2 n 1 Codage sur 1 octet (8 bits) : nombres de 0 à 255 Codage sur 2 octets (16 bits) : nombres de 0 à 65535 Codage sur 3 octets (32 bits) : nombres de 0 à 4 294 967 295 Les bits sont rangés selon leur poids (complément à gauche par des 0) Remarque entiers non signés

17/30 Introduction Codage des entiers Codage des réels Les chaînes de caractères Problème de la taille fixe ou de la précision finie Remarque : L algèbre des nombres en précision finie est différente de l algèbre des nombres normale : a + (b c) = (a + b) c Que se passe-t-il si l on utilise un codage sur 3 bits avec a = 100, b = 111, c = 101?

18/30 Introduction Codage des entiers Codage des réels Les chaînes de caractères Les entiers relatifs (1) Problème non trivial, si on réserve le bit de poids fort pour le signe (0 pour les nombres positifs, 1 pour les nombres négatifs). Les autres bits codent la valeur absolue du nombre Binaire signé ou entiers signés Exemple Codage en binaire signé sur un octet des nombres décimaux 24, -24, 128 et -128? Étendue du codage : avec n bits on peut coder tous les nombres N tels que (2 n 1 1) N 2 n 1 1 (avec 4 bits, tous les nombres entre -7 et 7) Mais... 0 est codé deux fois Addition et soustraction moins évidente car l opération du passage au négatif n est pas réversible

19/30 Introduction Codage des entiers Codage des réels Les chaînes de caractères Les entiers relatifs (2) Deuxième solution Le complément à 2 ou complément arithmétique 1. Les nombres positifs sont codés de la même façon qu en binaire signé 2. Un nombre négatif est codé en prenant son opposé, en le représentant en base 2 sur n 1 bits, en complémentant chaque bit, et en ajoutant 1 Exemples et remarque Codage en complément à 2, sur un octet, des nombres décimaux 24, -24, 128 et -128? Sur 4 bits, à quel nombre décimal correspond le nombre codé en complément à 2 par 1111? Addition, la retenue engendrée par les bits les plus à gauche est simplement ignorée (ex. sur 10-3)

20/30 Introduction Codage des entiers Codage des réels Les chaînes de caractères Quelques exemples de taille Illustration sur la norme ANSI C Dénomination Taille min. (octets) Domaine min. Entier court signé 2-32768 à 32767 Entier court non signé 2 0 à 65535 Entier signé 2-32768 à 32767 Entier non signé 2 0 à 65535 Entier court signé 4-2 147 483 648 à 2 147 483 647 Entier court non signé 4 0 à 4 294 967 295

21/30 Introduction Codage des entiers Codage des réels Les chaînes de caractères Codage des réels Il s agit de représenter un nombre binaire à virgule (par exemple, 101, 01 qui ne se lit pas cent un virgule zéro un puisque c est un nombre binaire mas 5, 25 en décimale) sous la forme 1,... 2 n (c est à dire dans notre exemple 1, 0101 2 2 ) La norme IEEE définit la façon de coder un nombre réel sur 32 bits et définit trois composante Signe sur 1 bit Mantisse sur 23 bits Exposant sur 8 bits (biais = 2 7 1 = 127) La valeur d un nombre est donnée par : ( 1) s (1 + 23 i=1 m i 2 i ) 2 e Attention, e représente l exposant réel et non la valeur, biaisée, stockée dans le champ de l exposant (e = champ exposant - biais)

22/30 Introduction Codage des entiers Codage des réels Les chaînes de caractères Codage des réels (2) Ainisi le codage d un réel se fait sous la forme s eeeeeeee }{{} mmmmmmmmmmmmmmmmmmmmmmm }{{} 8bits 23bits Codage sur la valeur 525,5 525,5 est positif donc le 1er bit sera 0 Sa représentation en base 2 est: 1000001101,1 En normalisant on trouve 1, 0000011011 2 9 On ajoute 127 à l exposant qui vaut 9 ce qui donne 136, soit en base 2: 10001000 La mentisse est composée de la partie décimale de 525, 5 en base 2 normalisée, c.à.d 0000011011 on complète la mentisse en ajoutant des 0 à droite pour qu il occupe 23 bits, soit 0 10001000 00000110110000000000000

23/30 Introduction Codage des entiers Codage des réels Les chaînes de caractères Quelques exercices 1. Quelle est l étendue de codage sur 8 et 16 bits en : Binaire pur Binaire signé Complément à 2 2. Coder les nombres 20 et -15 sur 8 et 16 bits en binaire signé, complément à 1 et complément à 2? 3. Calculer 20-15 sur 1 et 2 octets en complément à 2? 4. Décoder en décimal 11001001 c2 et 01101101 c2 (codage sur 1 octet) 5. Coder -9,5 et 6,25 avec la norme IEEE.

24/30 Introduction Codage des entiers Codage des réels Les chaînes de caractères L ASCII (1) Un codage historique : ASCII (American Standard Coding for Interchange) 128 caractères (jeu minimal) : 33 non imprimables, 94 imprimables, et l espace (considéré comme invisible) Des limitations claires (US-ASCII), liées à son histoire Jusque fin 2007, l encodage le plus répandu (UTF-8 depuis)

25/30 Introduction Codage des entiers Codage des réels Les chaînes de caractères L ASCII (2) 32 premiers caractères de contrôle (pour des machines comme les imprimantes) Caractère 10 : LF (Line Feed), permet de faire avancer le papier dans une imprimante) Caractère 8 : BS (backspace, retour arrière) Pas de description de la structure d une page (language de balisage)

26/30 Introduction Codage des entiers Codage des réels Les chaînes de caractères L ASCII (3) Beaucoup d extensions et de propositions nationales pour utiliser le huitème bit et coder les caractères suivants Certaines extensions non compatibles avec le jeu minimal!

27/30 Introduction Codage des entiers Codage des réels Les chaînes de caractères UTF-8 (1) UCS Transformation Format 8 bits Permet de représenter les (milliers de) de caractères du répertoire universel (UCS), commun à la norme IS/CEI 10646 et au standard Unicode Compatible avec US-ASCII UTF-8 est approuvé par l IETF (Internet Engineering Task Force) et le W3C (World Wide Web Consortium) Inventé en 1992 par K. Thompson (Unix)

28/30 Introduction Codage des entiers Codage des réels Les chaînes de caractères UTF-8 (2) Remarque On parle de points de code (code points) plutôt que de caractères dans UCS Principe 1. Les points de code ayant une valeur (scalaire, en base 10) comprise entre 0 et 127 sont codés sur un seul octet dont le bit de poids fort est nul 2. Les points de code de valeur supérieure à 127 sont codés sur plusieurs octets : les bits de poids forts du premier octet forment une suite de 1 de longueur égale au nombre d octets utilisés pour coder le caractère les octets suivant ont 10 comme bits de poids forts

29/30 Introduction Codage des entiers Codage des réels Les chaînes de caractères UTF-8 (3) Exemple é - 233-11000011 10101001 2048?

30/30 Introduction Codage des entiers Codage des réels Les chaînes de caractères UTF-8 (4) Propriétés Unicité du codage (séquence minimale) Lecture possible à partir de n importe quelle position Perte d efficacité en lecture car taille variable