Representation Numerique de L Information Annote

Télécharger au format ppt, pdf ou txt
Télécharger au format ppt, pdf ou txt
Vous êtes sur la page 1sur 42

Représentation numérique de

l’information numérique et
textuelle
Formation ISN 2017-2018
David Langlois
david.langlois@univ-lorraine. fr
Objectifs du cours
Montrer comment est
représentée/manipulée l’information dans
un ordinateur
Etude du codage binaire pour :
Les valeurs numériques
Les caractères
Autres natures de données
Les fichiers sons : voir version étendue de ce
support
Les images ? Voir un cours à suivre

2
Information
 Un ordinateur manipule des informations de natures
diverses
 Valeurs numériques : naturels, réels, irrationnels (?),
fractions, complexes...
 Données textuelles : texte brut, texte enrichi, texte avec
format
 Images : dessin libre, figures géométriques, photos
 Sons : bruit, musique, parole
 Vidéos : suite d’images + bande sonore
 Ces informations sont stockées sous des formats très
divers
 Ex : image  BMP, DXF, EPS , GIF, Jpeg, Photo CD, PCX, PICT,
PS, TIFF, WPG
 Ces informations sont :
 Stockées
 Manipulées
 Calculées
 Quels codages de ces informations ?

3
Ordinateur, c’est quoi ?
Une machine manipulant de l’information, seul
(calcul de trajectoire de météorite), ou en
interaction avec l’utilisateur
Quand je dessine à l’ordinateur, l’ordinateur manipule-
t-il un dessin ?
 Même réponse que pour la question « quand je joue au tennis
contre un mur, le mur joue-t-il au tennis du fait qu’il me renvoie
la balle ? »
Une machine permettant d’exécuter des
programmes
Une machine capable de lire des registres mémoire,
d’opérer des calculs sur ces registres et de modifier
les valeurs des registres
Un assemblage de plusieurs millions de transistors
4
Ordinateur, c’est quoi ?
Utilisateur : niveau numérique et
symbolique
Ordinateur : niveau purement électrique
Comment est construit le lien entre les
deux niveaux ?

5
ATTENTION
: vision
Transistor schématiqu
e
Un composant électronique dôté de :
Deux entrées e1 et e2
e2 TRANSIST
Une sortie s s
e OR
e2 est l’alimentation 1du transistor
Deux états :
Pas de courant en e1 + courant en e2  courant
en s
Courant en e1 + courant en e2  pas de courant
en s
Quel intérêt ?
Présence/absence de tension : facile à mesurer
Mesure robuste aux interférences
Simule une porte logique NON  calcul logique
e2
NON s
=1e
6
1
Logique et binaire
Logique et binaire : une correspondance
bijective
Logique : deux valeurs VRAI/FAUX
Binaire : deux valeurs 0/1
Possibilité de représenter les calculs
numériques binaires à l’aide des portes
logiques
Binaire = représentation efficace de
l’information de toute nature.

7
Codage binaire d’un nombre
Codage en base 10 : utilisation de
0,1,2,3,4,5,6,7,8,9 pour coder les valeurs
numériques
Codage en base 2 : utilisation de 0,1 pour
coder les valeurs numériques
Tout entier en base n peut être codé en
binaire.
Exemple
n
510 = 1012 car 5 = 1*22+0*21+1*20
X  bi 2
i
En général
i 0
X10 = bnbn-1bn-2....b2b1b0 si et seulement si :

8
Fabriquer un NON logique
(rappel)

NON
A NON
A
VRAI FAUX
FAUX VRAI

e2=
NON NON A
1
e1=
A

9
Fabriquer un ET logique
= Brancher plusieurs transistors
alimentation = 1

NON A
NON
e1 = A
NON (NON A OU NON B )
= A ET B
NON NON
e1 = B NON B NON A OU NON B

ET
A B A ET Distribution du NON
B
VRAI VRAI VRAI
VRAI FAUX FAUX
FAUX VRAI FAUX
FAUX FAUX FAUX
10
Autres opérations logiques
NON et ET suffisants pour :
A OU B = NON ((NON A) ET (NON B))
A NON-OU B = NON (A OU B)
A OU-EXCLUSIF B = (A ET NON B) OU (NON A
ET B)
OU NON-OU OU-EXCLUSIF
A B A OU A B A NOR A B A XOR
B B B
VRAI VRAI VRAI VRAI VRAI FAUX VRAI VRAI FAUX
VRAI FAUX VRAI VRAI FAUX FAUX VRAI FAUX VRAI
FAUX VRAI VRAI FAUX VRAI FAUX FAUX VRAI VRAI
FAUX FAUX FAUX FAUX FAUX VRAI FAUX FAUX FAUX

11
Le calcul binaire et le calcul
logique
1 bit = 0 ou 1
Opération sur les bits : complémentaire,
somme, multiplication
Convention
1 pour VRAI
0 pour FAUX

12
Et les supports de stockage ?
Disque dur
Surface magnétique constituée de très petits
éléments
Deux valeurs +/-
Têtes de lecture/écriture génèrent un champ
magnétique capable de changer la polarité
 code binaire
Mémoire flash
basée sur des semi-conducteurs à deux états
Passage du courant  passage d’un état à
l’autre
 code binaire

13
Et les supports de stockage ?
CD-ROM
Lecture laser : la surface réfléchissante renvoie le
laser
Vierge = surface opaque = laser non renvoyé
Ecriture = percer un trou minuscule dans la surface
opaque = la lumière laser est renvoyée
Deux états : lumière renvoyée ou non  codage
binaire
CD-RW : couche d’éléments pouvant devenir
transparents/opaques suivant la chaleur imposée
 binaire
Conclusion : les supports de stockage utilisent le
binaire
14
Mesure de la taille des
données
1 octet = 8 bits
1 Ko = 1024 octets (~1000)
1 Mo = 1024 Ko (~1000)
1 Go = 1024 Mo (~1000)
1 To = 1024 Go (~1000)

15
Conclusion
L’ordinateur gère tout sous forme binaire
Les supports de stockage aussi
Le binaire en plus d’être adapté à la structure
même d’un ordinateur a d’autres avantages
Souplesse pour coder les éléments du monde
Opérations courantes (multiplication par 2) 
simplicité + efficacité en machine
Donc tout doit être représenté sous cette
forme
Etudions les codages en binaire de
l’information sous toutes ses formes
16
Coder les nombres en binaire
Les entiers (rappel)
Codage en base 10 : utilisation de
0,1,2,3,4,5,6,7,8,9 pour coder les valeurs
numériques
Codage en base 2 : utilisation de 0,1 pour
coder les valeurs numériques
Tout entier en base n peut être codé en
binaire.
Exemple
n
510 = 1012 car 5 = 1*22+0*21+1*20
X  bi 2
i
En général
i 0
X10 = bnbn-1bn-2....b2b1b0 si et seulement si :

18
Opérations binaires
Complémentaire à 2 sur n bits
Si A est un nombre binaire, alors le
complémentaire c(A) est tel que :
c(A) = 2n-A
Remarque :
c(A) = (2n-1)-A+1
2n-1 en base 2 = que des 1
Donc :
 (2n-1)-A : remplacer dans A les 1 par des 0 et les 0 par
des 1
 c(A) : puis ajouter 1
 Calcul facile !

19
Complémentaire : exemple
Si A = 103 , C(A) = 256 -103 = 153
10 10 10 10
Retrouvons ce résultat avec la méthode de la
diapositive précédente
A : code 011001112 (application de la
méthode classique)
28-1-A : code 100110002 (on remplace les 1
par 0 et 0 par 1)
28-1-A+1 : code 100110012 (on ajoute 1)
Donc C(A) : code 100110012
Finalement : 10011001 = 128+16+8+1 = 153
2 10
On retombe sur le résultat ! Mais bon on n’est pas
surpris puisqu’on a prouvé que ce serait le cas
dans la diapositive précédente.

20
Opérations binaires
Somme Multiplication
Base 2 Base Base 2 Base 10
10
1 0 1 5
R 1 1
1 0 1 5
1 1 1 7
1 1 1 7 R 1 1
1 1 0 0 12 1 0 1
1 0 1
1 0 1
1 0 0 0 1 1 35

Multiplier par 2 = décalage de tous les bits à gauche,


dernier bit à 0
Diviser par 2 = décalage de tous les bits à droite, perte
21 du bit de poids faible
Codage
 Chaque valeur est codée sur un nombre préfixé de
bits
Exemples : 8, 16, 32, 64
Notez les puissances de 2, qui simplifient ensuite les
calculs
 Note : 8 bits = 1 octet
 1 bit = 2 valeurs possibles
 2 bits = 4 valeurs possibles
 ...
 n bits = 2n valeurs possibles
 Un entier sur 8 bits peut coder 256 valeurs
différentes
  constante importante : un ordinateur a toujours
des limites finies.
22
Codage
2n valeurs, d’accord, mais lesquelles ?
Tout dépend du codage choisi !!
C’EST UN CHOIX
TOUT LE MONDE EST D’ACCORD SUR CE
CHOIX  NORMALISATION

23
Codage des entiers naturels
(1/2)
 Sur n bits
 Valeurs de 0 à 2n-1
Exemple sur 8 bits
 00000000 = 0
2 10
 00000001 = 1
2 10
 00000010 = 2
2 10
 ...
 11111110 = 254
2 10
 11111111 = 255
2 10
 Attention aux dépassements !
11111111 +00000001 = ???
2 2
 Réponse 00000000
2
00000000 -00000001 = ???
2 2
 Réponse 11111111
2

24
Codage des entiers naturels
(2/2)
Deux représentations possibles (selon les
machines, les programmes)
Bit de poids faible à droite, bit de poids fort à
gauche
Bit de poids faible à gauche, bit de poids fort
à droite
Il faut le savoir et gérer en conséquence

25
Encodage/décodage des
entiers
Quelle méthode appliquer à la main ?
Pour encoder de la base 10 à la base 2 ?
Pour décoder de la base 2 à la base 10 ?
Tester sur des exemples :
210 = 102
310 = 112
1510 = 11112

26
De la base 2 vers la base 10
x = 10110111
2
x ?
10
Appliquer la formule :
1*27+0*26+1*25+1*24+0*23+1*22+1*21+1*20
1*128+0*64+1*32+1*16+0*8+1*4+1*2+1*1
128+32+16+4+2+1
183
Mais de tête, difficile de calculer toutes ces
puissances de 2
Il vaut mieux énumérer les puissances de 2 en
partant de 1 (20) puis en multipliant par 2 à
chaque fois
On lit alors les bits de droite à gauche

27
De la base 10 vers la base 2
(1/2)
x10 = 183
x2 ?
On peut travailler sur la formule :
7 7 7 6
X  bi 2 b0   bi 2 b0  2 bi 2 b0  2 b j 1 2
i i i 1 j

i 0 i 1 i 1 j 0

Donc, on a le bit de poids faible, ensuite, il


faut décoder le reste de la division par 2
sans ce bit
28
De la base 10 vers la base 2
(2/2)
 Exemple avec 183
 bit=1, reste à décoder 183/2 = 91
 bit=1, reste à décoder 91/2 = 45
 bit=1, reste à décoder 45/2 = 22
 bit=0, reste à décoder 22/2 = 11
 bit=1, reste à décoder 11/2 = 5
 bit=1, reste à décoder 5/2 = 2
 bit=0, reste à décoder 2/2 = 1
 bit=1, reste à décoder 1/2 = 0
 Résultat : 10110111

7 7 7 6
X  bi 2 b0   bi 2 b0  2 bi 2 b0  2 b j 1 2
i i i 1 j

i 0 i 1 i 1 j 0

29
Exercices
 Coder dans l’autre base (sur 8 bits)
49
10
126
10
11010010
2
01011011
2
 Les autres bases (souvent utilisées en informatique
par les humains)
Base 8 : code avec 0,1,2,3,4,5,6,7
Base 16 : code avec 0,1,2,3,4,5,6,7,8,9, A, B, C, D, E, F
Coder 2671 en base 16.
10
 Cet exercice est proposée dans la feuille
d’exercices, et donc corrigé dans la feuille de
correction.

30
Codage des entiers relatifs
(sol 1)
Sur n bits
1 bit pour le signe, n-1 bits pour la valeur
(+) Simple
(-) Dans les opérations, le bit de signe doit
être géré comme un cas particulier
(-) existence de 2 0 (non conceptuellement
satisfaisant), deux cas à gérer
Nombre de valeurs pouvant être codées : 2n-
1 (et pas 2n)

31
Codage des entiers relatifs
(sol 2)
Sur n bits
Complément à 2
Si x est positif, représentation habituelle,
Si x est négatif, on code 2n-|x| (le bit de poids fort est
1)
Exemple sur 8 bits
000001012 = 510
100001012 = 13310=256-12310=2810-12310 => codage
de -12310
(+) codage de 2n valeurs (un seul 0 00000000)
 (+) la somme des relatifs ne subit pas d’exceptions

32
Codage des entiers relatifs
(sol 2)
(-) codage moins évident que sol1
(+) la somme des relatifs ne subit pas
d’exception
Base 2 sur 8 bits Base 10
1 1 1 1 1
0 0 0 0 0 1 0 0 4
1 1 1 1 1 1 0 1 253 = 28-|
x|  x = -
3
0 0 0 0 0 0 0 1 1

33
Codage des entiers relatifs
(sol3)
 En excédent
 Représentation d’un intervalle [-i,+j] par les valeurs
décalées de i
 Exemple :
 Intervalle [-127,128] sur 8 bits
 [-127,128] contient bien 28=256 valeurs
 Décalage de 127
 Codage :
 -127 codé par 00000000
 -126 codé par 00000001
 ... ...
 -1 codé par 01111110
 0 codé par 01111111
 1 codé par 10000000
 .... ...
 127 codé par 11111110
 128 codé par 11111111

34
Exercices/solutions
Coder -8910 sur 8 bits en :
Bit de signe
Complément à 2
Excédent à 127
Cet exercice fait partie de la feuille
d’exercices, et est donc corrigé dans la
feuille de correction

35
Codage binaire des réels
(1/3)
 Les réels sont considérés en notation scientifique
x = +/- 0,a.10+/- b
x peut être réprésenté par 2 entiers a et b
(pour avoir 0,... il suffit d’adapter la valeur de b)
 En binaire :
x = +/- 1,a.2+/- b
 le 1 à gauche est toujours là par convention (voir diapo
suivante)
 On ne représente pas 0,101.2-3 mais 1,01.2-4
a et b sont en binaire
Codage de la partie fractionnaire en puissances
négatives de 2
Exemple :
 1,01011.22 = 101,011 = 1*22+0*21+1*20+0*2-1+1*2-2+1*2-
3

 1,01011.22 = 4+1+0,25+0,125 = 5,37510


36
Codage binaire des réels
(2/3)
 Norme IEEE 754
 Un réel est représenté sur 32 bits :
 1 bit pour le signe
 8 bits en excédent à 127 pour l’exposant
 La mantisse est représentée sous la forme 1,a. 23 bits pour a, le 1 à
gauche n’est pas représenté
 Exemple pour 5,375
 5 = 101
10 2
 Soit 1,01......*22
 a commence par 01
 b = 2 ; on représente 2+127 = 10000001
10 10 2
 Reste 21 (23 moins les 2 de 01 à droite de la virgule dans 1,01) bits pour
représenter 0,375
 Principe : si x = 0,b b ... alors 2x = b + 0,b ...
1 2 1 2
 2*0,375 = 0,75  0
 2*0,75 = 1,5  1
 2*0,5 = 1  1
 5,375 = 1,01011
10 2
 Sur 32 bits :
 010000001(1)01011000000000000000000 (le 1 est sous-entendu)
 01000000101011000000000000000000

37
Codage binaire des réels
(3/3)
Attention : seulement 232 valeurs possibles !
Les valeurs spéciales
 Le zéro est représenté par 32 bits à 0.
 Infini : exposant rempli de 1 et mantisse à 0
 Code erreur (exemple résultat d’une division par 0) :
exposant rempli de 1 et mantisse différente de 0

38
Coder du texte en binaire

39
Codage binaire des
caractères
 Problème : coder ‘a’,’b’, ‘c’, ‘A’, ‘B’, ‘?’, ‘.’, ‘€’, ‘©’, ‘’, ‘μ’,
‘ø’, caractères cyrilliques, asiatiques, arabes........
 Plusieurs codages : voir la liste dans un traitement de
texte
 ASCII : (American Standard Code for Information Interchange)
 7 bits = 128 valeurs, le 8ième bit utilisé pour vérification (lors des
échanges de données)
 Représentation de 128 caractères
 Pas assez pour toutes les langues
 ASCII étendu sur 8 bits (code ISO Latin-1)
 8 bits = 256 caractères différents, assez pour langues latines et
européennes
 Compatibilité avec le code ASCII (partage des 128 premiers
caractères)
 UNICODE sur 16 bits
 16 bits = 65536 caractères différents, assez pour tous les caractères
de toutes les langues
 Compatible avec le code ASCII.
 Problème : consommation mémoire + gestion un peu compliquée des
caractères sur 2 octets (voir en TD).

40
UTF-8 (1/2)
Coder tous les caractères de la norme
unicode
Un octet ne suffit plus
Coder sur n octets  gourmand en taille
 codage sur un nombre variable d’octets
Représentation binaire Signification
CodageUTF-8
U+0000 à U+007F
0xxxxxxx
(ASCII)
110xxxxx 10xxxxxx U+0080 à U+07FF
1110xxxx 10xxxxxx
U+0800 à U+FFFF
10xxxxxx
11110xxx 10xxxxxx
U+10000 à U+10FFFF
10xxxxxx 10xxxxxx
41
UTF-8 (2/2)
(+) tous les caractères sont codables
(+) : compatibilité totale avec l’ASCII sur 7
bits
(-) taille variable  décodage plus
complexe
D’autres avantages/défauts plus
techniques
Voir http://fr.wikipedia.org/wiki/UTF-8

42

Vous aimerez peut-être aussi