Filière ITTI - Auxerre TC1 Modélisation des informations (partie 1)



Documents pareils
Informatique Générale

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

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

Logiciel de Base. I. Représentation des nombres

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

Représentation des Nombres

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

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Conversion d un entier. Méthode par soustraction

Architecture de l ordinateur

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

Représentation d un entier en base b

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

Une version javascript sera disponible directement dans le cours prochainement.

1 Introduction au codage

Cours Informatique 1. Monsieur SADOUNI Salheddine

Chapitre 10 Arithmétique réelle

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


Le codage informatique

Algorithme. Table des matières

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

Programmation en Java IUT GEII (MC-II1) 1

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

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

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


UE C avancé cours 1: introduction et révisions

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

V- Manipulations de nombres en binaire

IFT2880 Organisation des ordinateurs et systèmes

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

Chapitre 1 I:\ Soyez courageux!

Rappels Entrées -Sorties

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

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

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

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

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

Annexe : La Programmation Informatique

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

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

Puissances d un nombre relatif

TD : Codage des images

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

Licence Sciences et Technologies Examen janvier 2010

PROJET ALGORITHMIQUE ET PROGRAMMATION II

LES TYPES DE DONNÉES DU LANGAGE PASCAL

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

Support pour les langues s écrivant de droite à gauche

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

EBS 204 E C B S. Publication : Novembre 96

Plan. Programmation Internet Cours 3. Organismes de standardisation

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

Les structures. Chapitre 3

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

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

Éléments de programmation et introduction à Java

IV- Comment fonctionne un ordinateur?

M1105 : Bases des systèmes d exploitation

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

Architecture des ordinateurs Introduction à l informatique

CHRONIQUE de la société royale LE VIEUX-LIÈGE

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

NanoSense. Protocole Modbus de la sonde Particules P4000. (Version 01F)

Solutions web : instructions aux développeurs

Autour du web. Une introduction technique Première partie : HTML. Georges-André SILBER Centre de recherche en informatique MINES ParisTech

Cours 1 : Qu est-ce que la programmation?

nom : Collège Ste Clotilde

Création et Gestion des tables

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

Conseils pour l exploitation des relevés de comptes reçus en télétransmission par les protocoles EDI WEB ou EBICS.

ALGORITHMIQUE ET PROGRAMMATION En C

Cours d Algorithmique et de Langage C v 3.0

ET LO GICIEL D UN S YS T EME IN FORMATIQUE

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

Programme des Obligations d épargne du Canada. Guide d utilisation du serveur FTPS. Version 2.4

Les outils de création de sites web

I.1- DÉFINITIONS ET NOTIONS DE BASE

Notions fondamentales du langage C# Version 1.0

1 Introduction et installation

XML, PMML, SOAP. Rapport. EPITA SCIA Promo janvier Julien Lemoine Alexandre Thibault Nicolas Wiest-Million

ANALYSE TRAMEs LIAISON SERIE

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

Manuel d intégration API FTP SMS ALLMYSMS.COM

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

Démonstration d utilisation De NesmaCom

1 Recherche en table par balayage

L3 informatique TP n o 2 : Les applications réseau

Organisation des Ordinateurs

L'essentiel de XML. Cours XML. Olivier Carton

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Chap III : Les tableaux

Projet Matlab : un logiciel de cryptage

Mathématiques appliquées à l informatique

Architecture matérielle des systèmes informatiques

La sécurité dans un réseau Wi-Fi

Programmation en langage C

Transcription:

Filière ITTI - Auxerre TC1 Modélisation des informations (partie 1) Marie-Noëlle Terrasse Département IEM, Université de Bourgogne 12 novembre 2004 On appelle données simples les informations représentées par des valeurs alpha-numériques (entier et réels, caractères et chaînes). 1 Binaire, octal, décimal, hexadécimal La base du codage en informatique est le binaire (valeur 0 ou 1). Pour des raisons évidente de facilité les informations binaires sont regroupées en paquets de 8 positions appelés octets. L octet est la base du codage des données. On manipule aussi parfois les données sous format hexadécimal (16 positions binaires). Exercice 1- Les octets i) Rappeler le principe du codage binaire et du passage binaire-décimal. ii) Quelles valeurs entières peut-on coder sur un octet? sur deux octets? sur 3 octets? sur 4 octets? Exercice 2- Binaire, octal, décimal, hexadécimal Montrez sur la valeur 317 le passage : i) Du décimal au binaire sur les entiers. ii) Du décimal à l hexadécimal sur les entiers (et faites la transformation inverse : de l hexadécimal au décimal). iii) Du binaire à l octal et de l octal au binaire. 2 Le codage des entiers relatifs Les entiers négatifs peuvent être codés en binaire selon plusieurs méthodes que nous allons présenter ci-dessous. Par bit de signe et valeur absolue : on réserve le premier bit pour le signe (0 pour positif, 1 pour négatif) et le reste pour la valeur absolue. Par bit de signe et complément à 1 : on réserve le premier bit pour le signe (0 pour positif, 1 pour négatif) et le reste pour la valeur absolue dans laquelle on a remplacé les 0 par des 1 et les 1 par des 0. Par bit de signe et complément à 2 : on réserve le premier bit pour le signe (0 pour positif, 1 pour négatif) et le reste pour la valeur absolue dans laquelle on a remplacé les 0 par des 1 et les 1 par des 0 puis ajouté 1. Par décalage : on code l intervale [-n,n-1] en ajoutant n à chacune des valeurs. Les valeurs codées sont donc toutes positives (entre 0 et 2n-1). Exercice 3- Codages d entiers négatifs i) Coder en bit de signe et valeur absolue sur 4 bits. Que remarquez-vous? Comment passe-t-on d une valeur à son opposé? ii) Coder en bit de signe et complément à 1 sur 4 bits. Que remarquez-vous? Comment passe-t-on d une valeur à son opposé? iii) Coder en bit de signe et complément à 2 sur 4 bits. Comment passe-t-on d une valeur à son opposé? iv) On code par décalage sur 11 bits. Quel décalage faut-il utiliser? Quel est l intervale codé? Comment est codé le 0? Exercice 4- Les types entiers en Java 1

i) Le type byte de Java est codé en complément à 2 sur 1 octet. Calculez les limites des valeurs de ce type. ii) Le type short de Java est codé en complément à 2 sur 2 octets. Calculez les limites des valeurs de ce type. iii) Le type int de Java est codé en complément à 2 sur 4 octets. Calculez les limites des valeurs de ce type. iv) Le type long de Java est codé en complément à 2 sur 8 octets. Calculez les limites des valeurs de ce type. 3 Le codage des réels Les réels sont la plupart du temps codés selon la norme IEEE-754 (définie en 1985). Il s agit d une représentation en virgule flottante : signe, mantisse (valeur normalisée en binaire), exposant (en binaire). Il existe deux niveaux : simple et double précision (la norme IEEE définit aussi quatre modes d arrondis, non traités ici). En simple précision le réel est codé sur 32 bits (23 bits de mantisse, 8 bits d exposant). En double précision le réel est codé sur 64 bits (52 bits de mantisse, 11 bits d exposant). Le calcul du codage se fait de la façon suivante : Le signe est codé 0 pour les positifs, 1 pour les négatifs. On traduit en binaire la partie entière du réel. On traduit en binaire la partie décimale du réel. Pour cela on multiplie par deux la partie fractionnaire et on garde à chaque étape la partie entière du résultat. On normalise ensuite l écriture binaire (sous la forme 1.xxxxx) et on prend comme mantisse tout ce qui apparait en partie décimale de l écriture normalisée. L exposant est codé par décalage (décalage de 127 en simple précision et de 1023 en double précision). Exercice 5- Partie fractionnaire Traduire du décimal au binaire une partie fractionnaire sur l exemple de 0.777. Effectuez la traduction inverse et montrer les problèmes d arrondi qui peuvent survenir. Exercice 6- Codage des réels en norme IEEE i) Coder le réel 317.55 en simple puis en double précision. ii) Décoder le réel simple précision obtenu et comparez avec la valeur initiale. 4 Le codage des caractères Il existe plusieurs méthode de codage des caractères, plus ou moins complexes et complètes : le code ASCII (1965), la norme ISO/IEC 10646 (1993), UNICODE (toujours en cours de développement). Le code ASCII (American Standard Code for Information Interchange), contruit entre 1963 et 1965 par l ANSI (American National Standard Institute) est décrit dans les normes ISO-14962-1997 et ANSI-X3.4-1986(R1997) 1. Il permet le codage des caractères sur 7 bits. Le huitième bit est utilisé pour des contrôles de parité. Le code EBCDIC (Extended Binary Coded Decimal Interchange Code) appelé aussi code ASCII étendu reprend le code ASCII mais en utilisant le huitième bit pour coder d autres caractères comme des caractères nationaux (les lettres accentuées en français par exemple) ou des caractères semi-graphiques. Il existe plusieurs extensions possibles. Elles sont données par les normes ISO-8859 (par exemple ISO 8859-1 est l alphabet Latin-1 2 ). 2 1 Voir par exemple [?] et l Annexe 1. 2 Voir [?] et Annexe 3.

La norme ISO/IEC 10646 a été publiée en 1993 par l ISO (International Organization for Standardization) 3. Elle est appelée UCS pour "Universal Multiple-Octet Coded Character Set". Elle vise à intégrer tous les caractères connus de tous les langages écrits du monde. Chaque caractère est codé soit sur 16 bits (en UCS-2), soit sur 31 bits (UCS-4). En UCS-2 les caractères sont répartis en 256 colonnes de 256 cellules chacune. Le premier octet de la représentation en UCS-2 est le numéro de colonne, le second octet est le numéro de cellule dans la colonne. La première colonne (numéro 0) contient les caractères de la table ASCII. En UCS-4 on peut coder plus de 2 billions de caractères. Le premier bit du premier octet est toujours à zéro. L espace de codage est divisé en 128 groupes de 256 plans. Le premier octet est le numéro de groupe et le second octet le numéro de plan, les octets trois et quatre sont les numéros de colonnes et de cellules (comme en UCS-2). Le groupe 0, plan 0 correspond au code UCS-2, on l appelle BMP (Basic Multilingual Plane). Il comprend les codes de 0x0000 à 0xFFFD. Les caractères 0x0000 à 0x007F sont identiques à ceux du code US-ASCII, et les caractères 0x0000 à 0x00FF sont identiques à ceux du jeu de caractères ISO 8859-1 Latin-1. Exercice 7- ASCII et UCS i) Combien de caractères peut-on coder en UCS-2 et UCS-4? ii) Comment passe-t-on d un code ASCII au code UCS-2 correspondant? iii) Comment passe-t-on d un code UCS-2 au code UCS-4 correspondant? Trois niveaux d implémentation de UCS sont prévus dans la norme ISO/IEC 10646 : Le niveau 1 d implémentation correspond au fonctionnement du code ASCII : chaque caractère graphique occupe une position et déplace le curseur d une position dans la direction d écriture. Dans cette implémentation les lettres avec marqueurs (cédilles, accents, etc.) sont considérées comme un seul caractère. Certains langages (comme l arabe ou l hébreu) dans lesquels on écrit en général de droite à gauche mais avec parfois des mots écrits de gauche à droite (pour les mots provenant du latin ou les valeurs numériques) sont plus complexes à prendre en compte dans ce modèle (mais ça marche). D autres langages (comme le japonais ou le chinois) ne peuvent pas être pris en compte au niveau 1 car ils comprennent un nombre trop élevé de caractères. Le niveau 2 prend en compte certains langages (de l Inde en particulier) dans lesquels l apparence et la position relative d une lettre dépend des lettres qui l entourent. Le niveau 3 permet de combiner n importe quel caractère avec n importe quel marqueur (plusieurs caractères et plusieurs marqueurs pouvant être utilisés). Il est nécessaire par exemple pour le Korean Hangul et pour l alphabet phonétique international (IPA, International Phonetic Alphabet). Le consortium Unicode a pour objectif de fournir : a unique number for every character, no matter what the platform, no matter what the program, no matter what the language. Le standard unicode sert d implémentation à la norme ISO/IEC 10646. Ce standard a été adopté par Apple, HP, IBM, JustSystem, Microsoft, Oracle, SAP, Sun, Sybase, Unisys, etc. Il est nécessaire pour les outils XML, Java, ECMAScript (JavaScript), LDAP, CORBA 3.0, WML, etc. Par exemple : Le protocole HTTP utilise un paramètre MIME charset pour indiquer le codage de caractères utilisé : Content-Type: text/html; charset=iso-2022-jp En XML les valeurs unicode sont en hexadécimal et préfixées par U+ comme "U+1234" ou "U+10FFFD". Le jeu de caractères d un document, au sens SGML, est le jeu universel de caractères de l ISO 10646, identique à celui du standard Unicode. Sous Linux, seul le niveau d implémentation 1 du BMP est disponible (un type prédéfini en C noté wchar_t est un entier 16 bits non signé dont la valeur est interprétée comme un code BMP de niveau 1 UCS). L implémentation UTF-8 (Unicode Transformation Format-8) permet de coder des caractères selon le standard Unicode (en utilisant entre 1 et 6 octets). Le nombre d octets nécessaires dépend de la partie de code traitée. En particulier, les codes U+0000 à U+007F (qui correspondent aux caractères US-ASCII) sont codés 3 3 Voir aussi [?] et l Annexe 2.

sur un seul octet : on a donc compatibilité en UTF-8 avec les applications qui utilisent le code ASCII. Cette implémenattion est utilisée entre aurtes par HTML et les nouvelles versions de Linux RedHat. L implémentation UTF-8 est organisée de la façon suivante (les x représentent les positions qui peuvent être utilisées) : 4 UCS-4 initial UCS-4 final UTF-8 0000 0000 0000 007F 0xxxxxxx 0000 0080 0000 07FF 110xxxxx 10xxxxxx 0000 0800 0000 FFFF 1110xxxx 10xxxxxx 10xxxxxx 0001 0000 001F FFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx 0020 0000 03FF FFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 0400 0000 7FFF FFFF 1111110x 10xxxxxx... 10xxxxxx Pour passer de l UCS-4 à l UTF-8, on utilise l algorithme suivant : 1. Utiliser la table ci-dessus pour déterminer le nombre d octets nécessaires. 2. Remplir la partie invariable des octets (en caractères gras) en utilisant la table. 3. Remplacer les x par des valeurs binaires en partant des bits de poids faibles et en remontant vers les poids forts. Pour passer de l UTF-8 à l UCS-4, on utilise l algorithme suivant : 1. Initialiser à zéro les bits des 4 octets. 2. En utilisant la table précédente et le nombre d octets occupés par la représentation UTF-8, déterminer les bits qui seront utilisés. 3. Remplir en commencant par les bits de poids faibles et en remontant vers les poids forts. Exercice 8- La succession des codes i) Coder successivement en ASCII, EBCDIC, UCS-2, UCS-4 et UTF-8 le caractère C.Effectuer les traductions réciproques. ii) Retrouver le codage en UCS-4 du caractère unicode Bengali ci-dessous. iii) Effectuer la traduction en UTF-8 de ce caractère. Effectuer la traduction réciproque. 5 Le codage des chaînes de caractères Le langage C utilise pour les chaînes de caractères un codage appelé ASCIIZ : la chaîne est un tableau de caractères (utilisé à partir de l indice 0) et terminé par le caractère \0. Le langage Pascal utilise pour le codage des chaînes de caractères un tableau de caractères (utilisé à partir de l indice 1) : l indice 0 du tableau contient le caractère dont le code ASCII est égal à la longueur de la chaîne. Exercice 9- Les chaînes de caractères On stocke dans une variable de type chaîne de caractères de longueur 50 la chaîne "Le vendredi, j ai cours à l IUT d Auxerre". On a comme déclarations en C char phrase[50] ; et en Pascal var phrase char[50] ; i) Montrez ce que contient la variable phrase en C. ii) Montrez ce que contient la variable phrase en Pascal. iii) Expliquez pourquoi les chaîne de caractères sont limitées à 255 caractères en Pascal.

6 Tables de puissances 5 6.1 Les puissances de 2 puissances valeur valeur valeur valeur 1 à 4 1 2 4 8 5 à 8 16 32 64 128 9 à 12 256 512 1024 2048 13 à 16 4096 8192 16384 32768 17 à 20 65536 131072 262144 524288 21 à 24 1048576 2097152 4194304 8388608 25 à 28 16777216 33554432 67108864 134217728 29 à 32 268435456 536870912 1073741824 2147483648 6.2 Les puissances négatives de 2 puissances valeur valeur valeur valeur -1 à -4 1.0000000000 0.5000000000 0.2500000000 0.1250000000-5 à -8 0.0625000000 0.0312500000 0.0156250000 0.0078125000-9 à -12 0.0039062500 0.0019531250 0.0009765625 0.0004882812-13 à -16 0.0002441406 0.0001220703 0.0000610352 0.0000305176-17 à -20 0.0000152588 0.0000076294 0.0000038147 0.0000019073-21 à -24 0.0000009537 0.0000004768 0.0000002384 0.0000001192-25 à -28 0.0000000596 0.0000000298 0.0000000149 0.0000000075-29 à -32 0.0000000037 0.0000000019 0.0000000009 0.0000000005