SlideShare une entreprise Scribd logo
1  sur  42
Formation ISN 2017-2018
David Langlois
david.langlois@univ-lorraine. fr
Représentation numérique de
l’information numérique et textuelle
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
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
Transistor
 Un composant électronique dôté de :
 Deux entrées e1 et e2
 Une sortie s
 e2 est l’alimentation du 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
NON
e2=
1 e
1
s
TRANSISTO
R
e2
e
1
s
ATTENTION
: vision
schématique
6
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
 510 = 1012 car 5 = 1*22+0*21+1*20
 En général
 X10 = bnbn-1bn-2....b2b1b0 si et seulement si :
2
0
i
n
i
i
b
X 
 

8
Fabriquer un NON logique
(rappel)
NON
e2=1
e1=A
NON A
NON
A NON A
VRAI FAUX
FAUX VRAI
9
NON A
Fabriquer un ET logique
 = Brancher plusieurs transistors
NON
e1 = A
ET
A B A ET B
VRAI VRAI VRAI
VRAI FAUX FAUX
FAUX VRAI FAUX
FAUX FAUX FAUX
NON
e1 = B
NON
NON B NON A OU NON B
NON (NON A OU NON B )
= A ET B
Distribution du NON
alimentation = 1
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
A B A OU B
VRAI VRAI VRAI
VRAI FAUX VRAI
FAUX VRAI VRAI
FAUX FAUX FAUX
NON-OU
A B A NOR B
VRAI VRAI FAUX
VRAI FAUX FAUX
FAUX VRAI FAUX
FAUX FAUX VRAI
OU-EXCLUSIF
A B A XOR B
VRAI VRAI FAUX
VRAI FAUX VRAI
FAUX VRAI 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
 510 = 1012 car 5 = 1*22+0*21+1*20
 En général
 X10 = bnbn-1bn-2....b2b1b0 si et seulement si :
2
0
i
n
i
i
b
X 
 

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 = 10310, C(A) = 25610-10310 = 15310
 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 : 100110012 = 128+16+8+1 = 15310
 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
Base 2 Base
10
R  1 1
1 0 1 5
1 1 1 7
1 1 0 0 12
Multiplication
Base 2 Base 10
1 0 1 5
1 1 1 7
R 1 1
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 du bit de
poids faible
21
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
 000000002 = 010
 000000012 = 110
 000000102 = 210
 ...
 111111102 = 25410
 111111112 = 25510
 Attention aux dépassements !
 111111112+000000012 = ???
 Réponse 000000002
 000000002-000000012 = ???
 Réponse 111111112
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
 x2 = 10110111
 x10 ?
 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 :
 Donc, on a le bit de poids faible, ensuite, il faut
décoder le reste de la division par 2 sans ce bit
2
2
2
2
6
0
1
0
1
7
1
0
7
1
0
7
0
2
2
j
j
j
i
i
i
i
i
i
i
i
i b
b
b
b
b
b
b
X 









 


 





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
2
2
2
2
6
0
1
0
1
7
1
0
7
1
0
7
0
2
2
j
j
j
i
i
i
i
i
i
i
i
i b
b
b
b
b
b
b
X 









 


 





29
Exercices
 Coder dans l’autre base (sur 8 bits)
 4910
 12610
 110100102
 010110112
 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 267110 en base 16.
 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=28
10-12310 =>
codage de -12310
 (+) codage de 2n valeurs (un seul 0
00000000)
 (+) la somme des relatifs ne subit pas
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
 510 = 1012
 Soit 1,01......*22
 a commence par 01
 b = 210; on représente 2+12710 = 100000012
 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,b1b2... alors 2x = b1 + 0,b2...
 2*0,375 = 0,75  0
 2*0,75 = 1,5  1
 2*0,5 = 1  1
 5,37510 = 1,010112
 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
 Codage Représentation binaire UTF-8 Signification
0xxxxxxx U+0000 à U+007F (ASCII)
110xxxxx 10xxxxxx U+0080 à U+07FF
1110xxxx 10xxxxxx 10xxxxxx U+0800 à U+FFFF
11110xxx 10xxxxxx 10xxxxxx
10xxxxxx
U+10000 à U+10FFFF
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

Contenu connexe

Similaire à representation_numerique_de_l_information_annote.ppt

Architecture des ordinateurs Elaboré par- ABIDA Mounir.ppt
Architecture des ordinateurs Elaboré par- ABIDA Mounir.pptArchitecture des ordinateurs Elaboré par- ABIDA Mounir.ppt
Architecture des ordinateurs Elaboré par- ABIDA Mounir.pptwafawafa52
 
Nombres réels et négatifs en binaire
Nombres réels et négatifs en binaireNombres réels et négatifs en binaire
Nombres réels et négatifs en binairevalentin Victoire
 
Les mathématiques au service du transport de l’information
Les mathématiques au service du transport de l’informationLes mathématiques au service du transport de l’information
Les mathématiques au service du transport de l’informationDany-Jack Mercier
 
Cours asm (1)
Cours asm (1)Cours asm (1)
Cours asm (1)sunprass
 
Ch1 circuits logiques_p1_combinatoire-v4
Ch1 circuits logiques_p1_combinatoire-v4Ch1 circuits logiques_p1_combinatoire-v4
Ch1 circuits logiques_p1_combinatoire-v4linuxscout
 
STRM1_Chapitre1_2021-2022.pdf
STRM1_Chapitre1_2021-2022.pdfSTRM1_Chapitre1_2021-2022.pdf
STRM1_Chapitre1_2021-2022.pdfAssiaYdroudj1
 
ch4_circuitscombinatoires.ppt
ch4_circuitscombinatoires.pptch4_circuitscombinatoires.ppt
ch4_circuitscombinatoires.pptamine17157
 
0. les réseaux le code binaire-hexa
0. les réseaux   le code binaire-hexa0. les réseaux   le code binaire-hexa
0. les réseaux le code binaire-hexaTruc Much
 
D226 chapitre 6
D226 chapitre 6D226 chapitre 6
D226 chapitre 6WanisAMER
 
Representation numerique de_l_information_26_09_2012
Representation numerique de_l_information_26_09_2012Representation numerique de_l_information_26_09_2012
Representation numerique de_l_information_26_09_2012David Langlois
 
dokumen.tips_cours-3-chiffrement-par-bloc-cole-normale-ferradi-1997-le-des-co...
dokumen.tips_cours-3-chiffrement-par-bloc-cole-normale-ferradi-1997-le-des-co...dokumen.tips_cours-3-chiffrement-par-bloc-cole-normale-ferradi-1997-le-des-co...
dokumen.tips_cours-3-chiffrement-par-bloc-cole-normale-ferradi-1997-le-des-co...SamiraElMargae1
 
Ch1 circuits logiques_p3_combinatoire-v1
Ch1 circuits logiques_p3_combinatoire-v1Ch1 circuits logiques_p3_combinatoire-v1
Ch1 circuits logiques_p3_combinatoire-v1linuxscout
 
0419-langages-de-programmation-et-compilation.pdf
0419-langages-de-programmation-et-compilation.pdf0419-langages-de-programmation-et-compilation.pdf
0419-langages-de-programmation-et-compilation.pdfFATI432465
 
Cour d'informatique c++
Cour d'informatique c++Cour d'informatique c++
Cour d'informatique c++AHMADELHADDADI
 

Similaire à representation_numerique_de_l_information_annote.ppt (20)

Architecture des ordinateurs Elaboré par- ABIDA Mounir.ppt
Architecture des ordinateurs Elaboré par- ABIDA Mounir.pptArchitecture des ordinateurs Elaboré par- ABIDA Mounir.ppt
Architecture des ordinateurs Elaboré par- ABIDA Mounir.ppt
 
Nombres réels et négatifs en binaire
Nombres réels et négatifs en binaireNombres réels et négatifs en binaire
Nombres réels et négatifs en binaire
 
Les mathématiques au service du transport de l’information
Les mathématiques au service du transport de l’informationLes mathématiques au service du transport de l’information
Les mathématiques au service du transport de l’information
 
Codage
CodageCodage
Codage
 
Cours asm (1)
Cours asm (1)Cours asm (1)
Cours asm (1)
 
Ch1 circuits logiques_p1_combinatoire-v4
Ch1 circuits logiques_p1_combinatoire-v4Ch1 circuits logiques_p1_combinatoire-v4
Ch1 circuits logiques_p1_combinatoire-v4
 
STRM1_Chapitre1_2021-2022.pdf
STRM1_Chapitre1_2021-2022.pdfSTRM1_Chapitre1_2021-2022.pdf
STRM1_Chapitre1_2021-2022.pdf
 
ch4_circuitscombinatoires.ppt
ch4_circuitscombinatoires.pptch4_circuitscombinatoires.ppt
ch4_circuitscombinatoires.ppt
 
0. les réseaux le code binaire-hexa
0. les réseaux   le code binaire-hexa0. les réseaux   le code binaire-hexa
0. les réseaux le code binaire-hexa
 
D226 chapitre 6
D226 chapitre 6D226 chapitre 6
D226 chapitre 6
 
Td logique
Td logiqueTd logique
Td logique
 
Representation numerique de_l_information_26_09_2012
Representation numerique de_l_information_26_09_2012Representation numerique de_l_information_26_09_2012
Representation numerique de_l_information_26_09_2012
 
E.N.pdf
E.N.pdfE.N.pdf
E.N.pdf
 
Ch2 representation
Ch2 representationCh2 representation
Ch2 representation
 
Cours architecture
Cours architectureCours architecture
Cours architecture
 
dokumen.tips_cours-3-chiffrement-par-bloc-cole-normale-ferradi-1997-le-des-co...
dokumen.tips_cours-3-chiffrement-par-bloc-cole-normale-ferradi-1997-le-des-co...dokumen.tips_cours-3-chiffrement-par-bloc-cole-normale-ferradi-1997-le-des-co...
dokumen.tips_cours-3-chiffrement-par-bloc-cole-normale-ferradi-1997-le-des-co...
 
Ch1 circuits logiques_p3_combinatoire-v1
Ch1 circuits logiques_p3_combinatoire-v1Ch1 circuits logiques_p3_combinatoire-v1
Ch1 circuits logiques_p3_combinatoire-v1
 
chap4 codes-en-ligne
chap4 codes-en-lignechap4 codes-en-ligne
chap4 codes-en-ligne
 
0419-langages-de-programmation-et-compilation.pdf
0419-langages-de-programmation-et-compilation.pdf0419-langages-de-programmation-et-compilation.pdf
0419-langages-de-programmation-et-compilation.pdf
 
Cour d'informatique c++
Cour d'informatique c++Cour d'informatique c++
Cour d'informatique c++
 

representation_numerique_de_l_information_annote.ppt

  • 1. Formation ISN 2017-2018 David Langlois david.langlois@univ-lorraine. fr Représentation numérique de l’information numérique et textuelle
  • 2. 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
  • 3. 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
  • 4. 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 4
  • 5. Ordinateur, c’est quoi ?  Utilisateur : niveau numérique et symbolique  Ordinateur : niveau purement électrique  Comment est construit le lien entre les deux niveaux ? 5
  • 6. Transistor  Un composant électronique dôté de :  Deux entrées e1 et e2  Une sortie s  e2 est l’alimentation du 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 NON e2= 1 e 1 s TRANSISTO R e2 e 1 s ATTENTION : vision schématique 6
  • 7. 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
  • 8. 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  510 = 1012 car 5 = 1*22+0*21+1*20  En général  X10 = bnbn-1bn-2....b2b1b0 si et seulement si : 2 0 i n i i b X     8
  • 9. Fabriquer un NON logique (rappel) NON e2=1 e1=A NON A NON A NON A VRAI FAUX FAUX VRAI 9
  • 10. NON A Fabriquer un ET logique  = Brancher plusieurs transistors NON e1 = A ET A B A ET B VRAI VRAI VRAI VRAI FAUX FAUX FAUX VRAI FAUX FAUX FAUX FAUX NON e1 = B NON NON B NON A OU NON B NON (NON A OU NON B ) = A ET B Distribution du NON alimentation = 1 10
  • 11. 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 A B A OU B VRAI VRAI VRAI VRAI FAUX VRAI FAUX VRAI VRAI FAUX FAUX FAUX NON-OU A B A NOR B VRAI VRAI FAUX VRAI FAUX FAUX FAUX VRAI FAUX FAUX FAUX VRAI OU-EXCLUSIF A B A XOR B VRAI VRAI FAUX VRAI FAUX VRAI FAUX VRAI VRAI FAUX FAUX FAUX 11
  • 12. 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
  • 13. 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
  • 14. 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
  • 15. 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
  • 16. 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
  • 17. Coder les nombres en binaire
  • 18. 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  510 = 1012 car 5 = 1*22+0*21+1*20  En général  X10 = bnbn-1bn-2....b2b1b0 si et seulement si : 2 0 i n i i b X     18
  • 19. 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
  • 20. Complémentaire : exemple  Si A = 10310, C(A) = 25610-10310 = 15310  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 : 100110012 = 128+16+8+1 = 15310  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
  • 21. Opérations binaires Somme Base 2 Base 10 R  1 1 1 0 1 5 1 1 1 7 1 1 0 0 12 Multiplication Base 2 Base 10 1 0 1 5 1 1 1 7 R 1 1 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 du bit de poids faible 21
  • 22. 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
  • 23. 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
  • 24. Codage des entiers naturels (1/2)  Sur n bits  Valeurs de 0 à 2n-1  Exemple sur 8 bits  000000002 = 010  000000012 = 110  000000102 = 210  ...  111111102 = 25410  111111112 = 25510  Attention aux dépassements !  111111112+000000012 = ???  Réponse 000000002  000000002-000000012 = ???  Réponse 111111112 24
  • 25. 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
  • 26. 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
  • 27. De la base 2 vers la base 10  x2 = 10110111  x10 ?  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
  • 28. De la base 10 vers la base 2 (1/2)  x10 = 183  x2 ?  On peut travailler sur la formule :  Donc, on a le bit de poids faible, ensuite, il faut décoder le reste de la division par 2 sans ce bit 2 2 2 2 6 0 1 0 1 7 1 0 7 1 0 7 0 2 2 j j j i i i i i i i i i b b b b b b b X                      28
  • 29. 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 2 2 2 2 6 0 1 0 1 7 1 0 7 1 0 7 0 2 2 j j j i i i i i i i i i b b b b b b b X                      29
  • 30. Exercices  Coder dans l’autre base (sur 8 bits)  4910  12610  110100102  010110112  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 267110 en base 16.  Cet exercice est proposée dans la feuille d’exercices, et donc corrigé dans la feuille de correction. 30
  • 31. 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
  • 32. 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=28 10-12310 => codage de -12310  (+) codage de 2n valeurs (un seul 0 00000000)  (+) la somme des relatifs ne subit pas 32
  • 33. 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
  • 34. 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
  • 35. 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
  • 36. 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
  • 37. 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  510 = 1012  Soit 1,01......*22  a commence par 01  b = 210; on représente 2+12710 = 100000012  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,b1b2... alors 2x = b1 + 0,b2...  2*0,375 = 0,75  0  2*0,75 = 1,5  1  2*0,5 = 1  1  5,37510 = 1,010112  Sur 32 bits :  010000001(1)01011000000000000000000 (le 1 est sous-entendu)  01000000101011000000000000000000 37
  • 38. 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
  • 39. Coder du texte en binaire 39
  • 40. 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
  • 41. 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  Codage Représentation binaire UTF-8 Signification 0xxxxxxx U+0000 à U+007F (ASCII) 110xxxxx 10xxxxxx U+0080 à U+07FF 1110xxxx 10xxxxxx 10xxxxxx U+0800 à U+FFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx U+10000 à U+10FFFF 41
  • 42. 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

Notes de l'éditeur

  1. Ce module aborde la représentation numérique de l’information. Nous allons découvrir ce qu’est le binaire, et pourquoi l’ordinateur utilise fortement le binaire. Nous verrons que toute information manipulée par un ordinateur est codée en binaire. Nous devrons donc définir ce que nous entendons par code. Cette notion de code est important car se cache derrière cette notion des éléments intéressants qui vont au-delà de l’informatique. Par exemple, qu’est ce qu’une information ? Pourquoi arrivons-nous à communiquer ? La réponse est parce que nous utilisons un code commun. Autre point intéressant : l’information est-elle quantifiable ? Comment la quantifier ? Nous découvrirons donc les différentes natures des informations manipulées par l’ordinateur, comme les valeurs numériques, les textes, les fichiers sons, etc. Pour chacune de ces natures, nous verrons comment il est possible de décrire l’information en binaire. Pour expliquer pourquoi l’ordinateur est basé sur le binaire, il faudra parler de l’architecture d’un ordinateur. Cette architecture utilise fortement le transistor. Nous verrons donc comment à partir de transistor, on peut créer des portes logiques, et partant, les opérations arthimétiques de base. Ces éléments d’architecture sont abordés dans ce diaporama, et développés dans un autre diaporama qui accompagne celui-ci dans le cours en ligne. Voilà, voilà, commençons !
  2. Bon, avec la longue introduction de la diapositive de titre, ce que vous lisez en ce moment ne devrait pas être surprenant pour vous
  3. Avec un ordinateur manipule nous manipulons de l’information sous diverses formes. Cela peut être des valeurs numériques dans une calculatrice, un tableur. On peut aussi penser aux données textuelles dans les nombreux documents que nous lisons et rédigeons. Et quand nous surfons sur le web, nous regardons des images, des vidéos et écoutons de la musique. Toutes ces informations nous semblent de nature très différentes les unes des autres. D’ailleurs, pour enregistrer les fichiers correspondants, il existe de nombreux formats, associés à des extensions. Cette masse de formats nous gène d’ailleurs quand nous n’avons pas le logiciel associé. Vous avez par exemple peut-être rencontré des problèmes de codecs quand vous avez voulu visionner une vidéo. En fait, ce qu’il se passe, c’est qu’une information est codée selon un certain format. Je parlerai ici plutôt de code.
  4. Il s’agit ici juste d’aboutir rapidement au binaire. La présentation de ce qu’est un ordinateur va donc être rapide. Tout d’abord, pour le commun des mortels, un ordinateurs est une machine qui permet principalement de rédiger des documents, de surfer sur internet, de voir des vidoés, ou écouter de la musique. Le point commun de toutes ces acitvités est la manipulation d’information de nature très diverse. Attention, l’ordinateur semble manipuler de l’information de haut niveau, comme des images, du son, des documents très struturés, mais nous allont voir que finalement, il ne manipule en fait que des informations purement numériques, c’est-à-dire que fondamentalement, il ne fait pas mieux qu’une calculatrice. L’ordinateur êut aussi être vu comme une machine pouvant exécuter des programmes. C’est-à-dire que contrairement aux autres machines, il n’est pas borné à une seule tâche, mais que la tâche est définie par le programme. Comme on peut programmer un peu ce qu’on veut, cela laisse imaginer les possibilités de la machine. Notez qu’on programme n’est qu’une information comme une autre. Cette information est tout simplement une suite d’insctruction. Là encore, nous verrons que cette suite d’instructions, qui nous semble « intelligentes » comme « ecrit toto à l’écran » n’est que simple calcul numérique pour l’ordinateur. Si on étudie un peu la programmation, en allant jusqu’à l’assembleur, qui est un langage intermédiaire entre un langage de programmation, et le langage machine, numérique, que comprend la machine, on rencontre des termes techniques comme registres, et on comprend que l’ordinateur ne fait que manipuler des zones mémoires, et opérer des calculs sur ces zones. Plus bas niveau, quand on ouvre un ordinateur et qu’on le regarde au microscope, on se rend compte que l’ordinateur est un assemblage de transistors. La question est comment est fait le lien entre cette machine magique qui nous rend de grands services, comme regarder des vidéos idiotes sur youtube et dailymotion, et cet amas de transistors. Nous allons voir maintenant ce qu’est un transistor, et comment à partir de transistor, on peut reproduire des opérations de base. Cela aboutira à la notion de binaire. Nous verrons alors comment tout type d’information peut être codé en binaire.
  5. Et donc, voilà, heu rien à dire par rapport à la diapo précédente. De quoi reposer les doigts sur le clavier, et de vous laisser souffler.
  6. Donc, qu’est ce donc qu’un transistor ? Notez bien ici que je reste à un niveau extrèmement schématique. Il existe un autre support de cours que je vais présenter bientôt si vous voulez comprendre plus en détail le principe du transistor. Bon, un transistor est un composant électronique. Ce composant est alimenté par une source électrique (le transformateur de l’ordinateur) via l’entrée e2. Ensuite, on peut ou non appliquer une tension en e1; Et alors, c’est magique : si on applique une tension en e1, il n’y a pas de tension en s. Et au contraire, si on n’applique pas de tension en s1, il y a une tension en s. Bon précisons tout de suite, que il n’y a sans doute pas de tension nulle en e1 du fait des interférences. Mais en fait, il est facile de se donner un seuil suffisamment haut et de dire que si la tension dépasse ce seuil, alors oui, il y a tension. On peut placer ce seuil de telle manière que les seuls interférences ne perturbe pas l’information « tension ou pas tension ». Mais quel est l’intérêt. Hé bien, il existe ce qu’on appelle une porte logique nommée NON qui va nous être bien utile pour continuer. En logique, on manipule 2 valeurs : VRAI et FAUX, et il existe une algèbre sur ces valeurs, qu’on appelle algèbre de boole car le mathématicien qui a créé cette algèbre s’appelait M. Boole. Un 1er opérateur de cette algèbre est la prote NON. Cette opérateur prend en entrée VRAI ou FAUX et donne en sortie son contraire : FAUX pour VRAI, et VRAI pour FAUX. C’est à dire exactrement le même comportement que le transistor si on décide que VRAI correspond à présence de tension, et FAUX correspond à absence de tension.
  7. Bon OK, on sait faire l’opérateur logique NON avec un transistor. Mais à quoi cela sert-il ? Parlons du binaire maintenant. Le binaire mabnipule 2 valeur 0 ou 1. Il y a comme un parallèle qui commence avec VRAI et FAUX, et nous allons développer ce parallèle.