Représentation des données

Documents pareils
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.

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

Chapitre 13 Numérisation de l information

Logiciel de Base. I. Représentation des nombres

Représentation des Nombres

Algorithme. Table des matières

Conversion d un entier. Méthode par soustraction

IFT2880 Organisation des ordinateurs et systèmes

Les opérations binaires

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

Cours Informatique 1. Monsieur SADOUNI Salheddine

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

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Le codage informatique

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

1 Introduction au codage

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

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Informatique. Les réponses doivent être données en cochant les cases sur la dernière feuille du sujet, intitulée feuille de réponse

Compter à Babylone. L écriture des nombres

Une version javascript sera disponible directement dans le cours prochainement.

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

Chapitre 10 Arithmétique réelle

Licence Sciences et Technologies Examen janvier 2010

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

Chap17 - CORRECTİON DES EXERCİCES

I.1- DÉFINITIONS ET NOTIONS DE BASE

Le poids et la taille des fichiers

LECON 2 : PROPRIETES DE L'AFFICHAGE Version aout 2011

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

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

Boîte électronique. Découverte des principales fonctions d une messagerie électronique. (et les pièces jointes)

Présentation du cours

Correction des exercices. Ch20 p : 532 n 21 : NUMERISATION DE L INFORMATION

V- Manipulations de nombres en binaire

Architecture des ordinateurs Introduction à l informatique

TD : Codage des images

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

ET LO GICIEL D UN S YS T EME IN FORMATIQUE

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

Architecture de l ordinateur

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

Stage d informatique pour l ingénieur

2 Comment fonctionne un ordinateur, dans les grandes lignes

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

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

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

Chapitre 1 I:\ Soyez courageux!

Représentation d un entier en base b

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Stage d informatique pour l ingénieur

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

Cours CCNA module 1 - FAIRON Amand

nom : Collège Ste Clotilde

Ordinateur Logiciel Mémoire. Entrées/sorties Périphériques. Suite d'instructions permettant de réaliser une ou plusieurs tâche(s), de résoudre un

Système binaire. Algèbre booléenne

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

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

I- Définitions des signaux.

UFR de Mathématiques et Informatique Année 2009/2010. Réseaux Locaux TP 04 : ICMP, ARP, IP

PROJET ALGORITHMIQUE ET PROGRAMMATION II

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

Glossaire des nombres

TP 1. Prise en main du langage Python

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

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

INFO 2 : Traitement des images

Priorités de calcul :

IV- Comment fonctionne un ordinateur?

Organisation des Ordinateurs

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

Annexe : La Programmation Informatique

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

Architecture matérielle des systèmes informatiques

Esterel The french touch star touch esterel advance

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

Introduction à NetCDF

avec des nombres entiers

Structure fonctionnelle d un SGBD

ASR1 TD7 : Un microprocesseur RISC 16 bits

Créer le schéma relationnel d une base de données ACCESS

Mathématiques appliquées à l informatique

Microprocesseur + Logiciel

Introduction à l Informatique licence 1 ère année Notes de Cours

1.1 L EXPLORATEUR WINDOWS

Formats d images. 1 Introduction

Cours d Informatique

Comme chaque ligne de cache a 1024 bits. Le nombre de lignes de cache contenu dans chaque ensemble est:

Algorithmique et Programmation, IMA

MODULE 2 : L échange et le partage de fichiers numériques

Résumé succinct des fonctions de messagerie électronique

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

F CFA F CFA F CFA +200 Mo 1000 F de crédit F CFA F CFA. Airtel, 1 er réseau 3G/4G au Gabon.

Consigne : je remplis le tableau en tenant compte des informations de la ligne supérieure et de la colonne de gauche (droite pour les gauchers)

Rappels Entrées -Sorties

Partie 7 : Gestion de la mémoire

Transcription:

Représentation des données 1 C o u r s o r i g i n a l : 2 0 0 8, P A T R I C K H O C H U L I. P o w e r P o i n t : 2 0 0 9, M A N U E L F R A G N I È R E.

0.1. Les systèmes numériques 2 Comment écrire le nombre «sept mille deux cents trois»? En toutes lettres (voir ci-dessus). De façon symbolique.

0.2. La première symbolisation des nombres Les Mésopotamiens : 2450 avant J.-C. Ils comptent avec des clous et des chevrons. 3

0.3. La numération de position Les Babyloniens invente la numération de position. La valeur d un signe varie selon sa position dans l écriture du nombre. Ils utilisent un système sexagésimal (la base 60). Ils réservent une place pour le «zéro». 4

1.1. La base 2 et les nombres entiers Comment écrire le nombre «sept mille deux cents trois»? Avec une numération de position en base 10 : 7 10 3 + 2 10 2 + 0 10 1 + 3 10 0 = 7203 En informatique, on utilise la base 2. Les deux symboles utilisés : 0 et 1. Ces symboles sont appelés bit (BInary digit). Un ordinateur manipule des données diverses : des entiers, des réels, des textes, des images, des sons. Toute donnée devra être représentée par des entiers binaires. 5

1.1.1. Passage de la base 2 à la base 10 Il suffit d additionner les puissances de 2. 6 Exemple : (11001) 2 (11001) 2 = 1 2 4 + 1 2 3 + 0 2 2 + 0 2 1 + 1 2 0 = 16 + 8 + 1 = 25

1.1.2. Passage de la base 10 à la base 2 Il faut décomposer le nombre en base 10 en puissance de 2. Il faut connaître les premières puissances de 2 par cœur! 2 0 = 1 2 1 = 2 2 2 = 4 2 3 = 8 2 4 = 16 2 5 = 32 2 6 = 64 2 7 = 128 2 8 = 256 2 9 = 512 2 10 = 1024... Exemple : Convertir (157) 10 en base 2. 7 (157) 10 = 128 + 16 + 8 + 4 + 1 = 1 2 7 + 0 2 6 + 0 2 5 + 1 2 4 + 1 2 3 + 1 2 2 + 0 2 1 + 1 2 0 = = (10011101) 2

1.1.2. Passage de la base 10 à la base 2 Unité d information : l octet («byte» en anglais). 1 octet = 8 bits. Quelle notation est la plus lisible? 1 256 245 1256245 8 101110011101 1011 1001 1101

1.1.2. Passage de la base 10 à la base 2 Un octet peut représenter 2 8 nombres entiers : 256 nombres de 0 à 255 (2 8 1). C est trop petit! Les ordinateurs codent les nombres entiers sur 16 bits : 65 536 entiers possibles! Avant 1998, 1 kilooctet = 1024 octets. 9 En 1998, l International Electrotechnical Commission (IEC) a standardisé ces unités : 1 kilooctet 1 ko 1000 octets 1 Mégaoctet 1 Mo 1000 ko = 1 000 000 octets 1 Gigaoctet 1 Go 1000 Mo = 1 000 000 000 octets 1 Téraoctet 1 To 1000 Go = 1 000 000 000 000 octets

1.1.2. Passage de la base 10 à la base 2 Malheureusement, de nombreux logiciels (y compris certains systèmes d exploitation) utilisent toujours la notation antérieure à 1998. 10 L ICE a donc défini une nouvelle unité, le kilo binaire (kibi), le Méga binaire (Mébi), le Giga binaire (Gibi), le Téra binaire (Tébi) : 1 kibioctet 1 kio 1024 octets 1 Mébioctet 1 Mio 1024 kio = 1 048 576 octets 1 Gibioctet 1 Gio 1024 Mio = 1 073 741 824 octets 1 Tébioctet 1 Tio 1024 Gio = 1 099 511 162 778 octets

1.2. Les nombres entiers négatifs Il faut coder le nombre de façon à savoir si l entier est positif ou négatif. Première idée : le bit de poids fort. 0 correspond au signe + et 1 correspond au signe. Exemple, 2 et -2 : Deux inconvénients : Le zéro est codé de deux manières différentes : (0) 10 = (00000000) 2 (-0) 10 = (10000000) 2 L addition binaire ne marche pas avec ce codage des négatifs : 3 + (-4) -1 Un autre codage des entiers négatifs doit être trouvé! 11 (2) 10 = (00000010) 2 (-2) 10 = (10000010) 2 00000011 + 10000100 10000111 ( = -7! )

1.2. Les nombres entiers négatifs Le complément à 2 : 1. On prend la valeur absolue x. 2. On représente x en base 2 sur n-1 bits. 3. On inverse chaque bit, c est le complément à 1. 4. On ajoute 1 (les dépassements au-delà de n bits sont ignorés). 5. La représentation de x en base 2 est 1 suivi de la suite obtenue. Cette opération correspond au calcul de 2 n - x. Exemple : codons -5 sur 8 bits. 1. x = 5 2. 000 0101 3. 111 1010 4. 111 1011 5. 1111 1011 Vérification : 12 0000 0101 + 1111 1011 = 1 0000 0000 (mais le 9 ème bit est éliminé!) donc égal 0.

1.3. Le code ASCII 13

1.3. Le code ASCII A chaque touche du clavier est associé un nombre. La norme ASCII (American Standard Code for Information Interchange) L ASCII est inventé en 1961 par Bob Bemer. L ASCII définit 128 caractères, numérotés de 0 à 127. Les caractères sont codés sur 7 bits (128 = 2 7 ). 14 Comme les ordinateurs travaillent sur 8 bits, le bit à gauche sera toujours un 0.

1.3. Le code ASCII Les caractères de numéro 0 à 31 et le 127 ne sont pas affichables. Le caractère 32 est l espace. Les autres caractères = chiffres arabes, lettres latines majuscules et minuscules, quelques symboles de ponctuation. D autres normes de codage ont repris l ASCII en utilisant le 8 ème bit (avec des caractères numérotés de 128 à 255). La norme ISO/CEI 8859 fournit des extensions pour diverses langues. Par exemple, l ISO 8859-1 (= Latin 1) permet de coder les caractères utiles en français ou en allemand (é, à, ü,...). Les différents codages sont sources d incompatibilités (é, È, ç,... s affichent mal). Afin d unifier les différents codages, la norme Unicode a été inventée. Les 128 premiers caractères d Unicode sont compatibles avec ASCII. 15

1.3. Le code ASCII Quelle logique pour le code ASCII? Le A possède le numéro 65 : A : 0100 0001 1 : 0000 0001 Le a ne diffère du A que d un bit : A : 0100 0001 a : 0110 0001 Différence entre une majuscule et la minuscule correspondante : 32 (en binaire : 0010 0000). 16 Wikipedia : Table ASCII

1.4. La représentation des nombres réels en base 2 En base 10, l expression 234,625 signifie : En base 2, l expression 110,111 signifie : 17 2 10 2 + 3 10 1 + 4 10 0 + 6 10 1 + 2 10 2 + 5 10 3 1 2 2 +1 2 1 + 0 2 0 + 1 2 1 + 1 2 2 + 1 2 3 On peut donc convertir facilement un nombre réel de la base 2 vers la base 10 : (110,111) 2 = 1 2 2 +1 2 1 + 0 2 0 + 1 2 1 + 1 2 2 + 1 2 3 = 4 + 2 + 0,5 + 0,25 + 0,125 = (6,875) 10 On remarque que la partie entière et la partie décimale sont indépendantes : (110) 2 = (6) 10 et (0,111) 2 = (0,875) 10.

1.4. La représentation des nombres réels en base 2 En revanche, le passage de base 10 en base 2 est plus sportif! Exemple : convertir (1234,5625) 10 en base 2. 1. On transforme la partie entière : (1234) 10 = (10011010010) 2 2. On transforme la partie décimale selon l idée suivante : 18 0,5625 1 1,125 1 2 3 n 3 +...+ a n 0,125 2 2 2 n 1 1 a 3 2 2 2 +...+ a n 0,25 3 2 n 2 3 +...+ a n = a n n 2 2 n 3 3 0 2 = a 4 1= a 4 n 3 2 a 4 = 1! 2 (0,5625) 10 = ( 0,1001 ) 2 (1234,5625) 10 = (10011010010,1001) 2 2 n 1 On soustrait 1 0 et on enlève a 12 3

1.4. La représentation des nombres réels en base 2 19 Maintenant qu on a compris la méthode, on peut simplifier la procédure : 0, 0,5625 2 1 1,125 2 0,125 0 0,25 2 0 0,5 2 1 1 0, 1 0 0 1

1.4. La représentation des nombres réels en base 2 Remarque : Un nombre à développement décimal fini en base 10 ne l est pas forcément en base 2. Exemple : transformez (0,15) 10 en base 2. 20 Résultat : (0,001001) 2

1.4.1. La norme IEEE-754 Un nombre réel n est pas limité à quelques chiffres après la virgule! Certains sont très petits ou très grands! G = 6,67259 10-11 N A = 6,022 10 23 Un nombre réel est écrit en notation scientifique : 21 + 6,67259 10-11 + 1,001001010 2-1011101 signe mantisse exposant signe mantisse exposant Forme d un nombre réel sur 32 bits : seeeeeeeemmmmmmmmmmmmmmmmmmmmmmm 1 bit signe 8 bits exposant 23 bits mantisse

1.4.1. La norme IEEE-754 La norme IEEE-754 est le standard actuel. Il y a 3 formats : Sur 32 bits : 1 bit de signe, 8 bits d exposant (-127... 128), 23 bits de mantisse (type «single»). Sur 64 bits : 1 bit de signe, 11 bits d exposant (-1023... 1024), 52 bits de mantisse (type «double»). Sur 80 bits : 1 bit de signe, 15 bits d exposant (-16383... 16384), 64 bits de mantisse. Par la suite, on traitera que des cas en 32 bits pour simplifier. 22

1.4.1. La norme IEEE-754 seeeeeeeemmmmmmmmmmmmmmmmmmmmmmm La mantisse est forcément une expression du type 1,... en base 2 : on l écrira 1 + m. Un nombre réel x s écrira donc sous la forme : s = 0 ou 1. e = entier signé. m compris dans l intervalle [0; 1[. 23 x = (-1) s 2 e (1 + m) avec e = E - 127

1.4.2. Recherche de s 24 s vaut 0 si x est positif. s vaut 1 si x est négatif.

Il y a 3 cas à envisager : 1.4.3. Recherche de e 1. Si x 2, on divise x par 2 autant de fois que nécessaire jusqu à obtenir un réel de l intervalle [1; 2[. e sera le nombre de divisions effectuées. 25 2. Si x < 1, on multiplie x par 2 autant de fois que nécessaire jusqu à obtenir un réel de l intervalle [1; 2[. e sera l opposé du nombre de multiplications effectuées. 3. Si 1 x < 2, alors e sera nul. e est codé sur 8 bits (de -127 à 128). Comme e peut être négatif, on ajoute 127 à l exposant pour obtenir un nombre compris entre 0 et 255. On a donc E = e + 127.

1.4.4. Recherche de m 26 Connaissant x, s et e, la valeur de m est facile à calculer : x = ( 1) s 2 e (1+ m) x = 2 e (1+ m) m = x 2 e 1

x = -9,6. 1. x est négatif : s = 1. 1.4.5. Exemples 2. On divise 9,6 par 2 jusqu à ce qu on obtienne un réel entre 1 et 2 : 9,6 2 = 4,8 4,8 2 = 2,4 2,4 2 = 1,2 On a divisé 3 fois par 2, donc e = 3. Et par conséquent E = 3 + 127 = 130 soit 1000 0010. 27 3. On calcule m : m = x 9,6 1= 1= 1,2 1= 0,2 e 3 2 2 m sera périodique en base 2 : (0,2) 10 = (0,0011) 2 Mais il faut l écrire sur 23 bits. On trouve : 0011 0011 0011 0011 0011 001 Résultat : 1 1000 0010 0011 0011 0011 0011 0011 001 s E m

x = 0,375. 1. x est positif : s = 0. 1.4.5. Exemples 28 2. On multiplie 0,375 par 2 jusqu à ce qu on obtienne un réel entre 1 et 2 : 0,375 2 = 0,75 0,75 2 = 1,5 On a multiplié 2 fois par 2, donc e = -2. Et par conséquent E = -2 + 127 = 125 soit 0111 1101. 3. On calcule m : m = x 0,375 1= 1= 1,5 1= 0,5 e 2 2 2 m sera en base 2 : (0,5) 10 = (0,1) 2 Mais il faut l écrire sur 23 bits. On trouve : 1000 0000 0000 0000 0000 000 Résultat : 0 0111 1101 1000 0000 0000 0000 0000 000 s E m

x = -1,05. 1. x est négatif : s = 1. 1.4.5. Exemples 2. 1,05 est dans l intervalle [1; 2[, donc e = 0. Et par conséquent E = 0 + 127 = 127 soit 0111 1111. 3. On calcule m : m = x 1,05 1= 1= 1,05 1= 0,05 e 2 2 0 m sera périodique en base 2 : (0,05) 10 = (0,000011) 2 29 Mais il faut l écrire sur 23 bits. On trouve : 0000 1100 1100 1100 1100 110 Résultat : 1 0111 1111 0000 1100 1100 1100 1100 110 s E m

1.5. Opérations en base 2 30 Addition : Les règles de l addition sont : 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10 Exemple : 13 + 7 = 20. 1101 + 111 10100 En additionnant de nombres de n bits, on peut avoir un débordement de capacité (overflow). Exemple : avec n = 8, effectuons 54 + 100 = 154. 0011 0110 + 0110 0100 1001 1010 Mais comme on travaille en complément à 2, ce nombre est interprété comme un nombre négatif : 1001 1010 = (-110 0101) 2 = (-102) 10

Multiplication : 1.5. Opérations en base 2 Les règles de la multiplication sont : 0 0 = 0 0 1 = 0 1 0 = 0 1 1 = 1 Exemple : 23 5 = 115. 10111 101 10111 00000- + 10111 - - 1110011 Le résultat est sur 7 bits, donc il est correct. 31 Mais on voit facilement qu un débordement de capacité (overflow) est aussi possible avec la multiplication.

Soustraction : 1.5. Opérations en base 2 Pour soustraire, on additionne le complément à 2. Exemple : 89 11 = 78. 0101 1001 + 1 1 11 0101 Complément à 2 de 0000 1011 1 0100 1 1 10 32 Le 9 ème bit est supprimé (par overflow). Il reste 0100 1110 qui correspond bien à 78.

Soustraction : Exemple : 42 51 = 9. 1.5. Opérations en base 2 0010 1010 + 1 100 1 101 Complément à 2 de 0011 0011 1 1 1 1 01 1 1 33 Nous trouvons un nombre négatif (le 1 er bit est 1). Pour trouver la valeur en base 10, il faut reprendre le complément à 2 de 1111 0111 : 0000 1001 qui correspond bien à 9. Donc 1111 0111 correspond à 9.

1.5. Opérations en base 2 34 Division : On utilise l algorithme habituel en soustrayant pas à pas. Exemple : 143 : 13 = 11. 1 0 0 0 1 1 1 1 1 1 0 1 1 1 0 1 1 1 0 0 1 0 1 0 0 1 1 1 1 0 1 1 1 1 0 1 1 1 0 1 1 0 1 0 1 1

1.6. Exercices du chapitre 1 35