0 ou 1 - Sciences Physiques au lycée Grand Air

Download Report

Transcript 0 ou 1 - Sciences Physiques au lycée Grand Air

Représentation numérique de
l’information
Rappel : Que manipule un
ordinateur ?
• Un ordinateur est un assemblage de circuits
électroniques.
• Un circuit électronique numérique manipule des
tensions électriques pour représenter
l'information.
• Le codage des informations est lié aux différents
états de ces tensions : 0V et +5V
Le bit
L'unité élémentaire utilisée en informatique pour
coder l'information est appelé un bit.
● Le mot « bit » étant la contraction de binary digit
(chiffre binaire), un bit peut prendre deux valeurs :
0 ou 1
● la valeur 0 correspond à un état électrique de 0V
La valeur 1 correspond à un état électrique de +5V
Bit et codage de l'information
• Avec seulement deux états, comment coder
des informations plus complexes que 0 et 1 ?
• Comment représenter numériquement des
informations aussi variées que :
Des nombres,
Des sons,
Des images,
Des vidéos,
Bits, octets
• On manipule souvent les bits par paquets de 8
– 8 bits = 1 octet = 1 byte
– 8b = 1o = 1B
• 1Kilo octet = 1Ko = 210 o = 1024 octets
• 1Mega octet = 1Mo = 220o = 1024 Kilo octets
• La différence étant croissante avec les multiples
usuels, on a essayé de réparer cela avec de nouvelles
unités en 1998
Multiples informatiques
Quelques définitions importantes
● Mot binaire (parfois appelé Mot) est une quantité
déterminée de bits traitée comme entité unique par
l'ordinateur.
● De façon concrète, le mot est le nombre de bits qu'un
microprocesseur peut manipuler en même temps (et
donc qui circulent sur les bus).
● Aujourd'hui la plupart des microprocesseurs utilisent
des mots de 32 ou 64 bits (suivant que leur
architecture est 32 ou 64 bits). Les premiers
ordinateurs utilisaient des mots de 8 bits.
Nombre en base décimale
• On a l’habitude de représenter les nombres en base
décimale ou base 10.
• Ce système est donc composé de 10 symboles (ou chiffres
ou digits : 0, 1, 2, 3...9) permettant de coder tous les
nombres à partir des puissances de 10.
• Par exemple, on peut décomposer le nombre 2542 :
2542(10) = 2.103+ 5.102+ 4.101+ 2.100
Base
• La position respective des chiffres représente leur poids
(unité, dizaine, millier,...) et l’association de chiffres est
appelé nombre. Dans le cas d’un nombre codé en base 10,
on parle de nombre décimal.
Vous trouvez ça drôle ?
« Il n'y a que (10)2 sortes de personnes,
celles qui comprennent le binaire et
celles qui ne le comprennent pas. »
Nombre en base binaire
• Le système binaire comporte 2 chiffres : 0 et 1.
• Suivant le nombre de bits, on pourra représenter un
certain nombre de valeurs sur n bits.
• Supposons des chiffres entiers non signés codés sur 8
bits.
• Par exemple :
• (00000000)2 = 0
• (00000001)2 = 1
• (10000000)2 = 128
• (01010101)2 = 85 = 0x128+1x64+0x32+1x16+0x8+1x4+0x2+1x1
• (11111111)2 = 255 =
1x128+1x64+1x32+1x16+1x8+1x4+1x2+1x1
Numération et codage – Changements de bases
• Pour passer d’un nombre décimal à un nombre exprimé dans
une autre base, on utilise la méthode des divisions
successives.
• On divise alors le nombre décimal N(10) par la base B(binaire,
base 2). Le reste de la division est un digit du résultat
Nombre en
base décimale
92
0
46
2
0
23
2
1
11
2
1
5
2
1
2
Reste
Bit de poids faible
Base
2
Sens de
lecture du
résultat
(1011100)
Bit de poids fort
0
2
1
2
1
0
Exemple : Donner le nombre 42 (codé en décimal)
en binaire.
Nombre en
base décimale
42
0
Base
2
21
2
1
10
2
0
5
2
1
2
2
0
1
2
1
0
Reste
Sens de
lecture du
résultat
(101010)
Quelques questions
Q.1. Donner les puissances de 2 de 0 à 10.
Q.2. Combien vaut (00101001)2 ? Et (11001100)2?
Q.3. Combien vaut (11111111)2 ? Et si on y ajoute 1?
Q.4. Combien vaut (19)10 ? Et (112)10?
Q.5. Comment représenter (1026)10 en binaire ?
Q.6. Combien de nombres différents peut on représenter sur un
octet ?
Vérifier à l’aide d’un convertisseur disponible sur le web.
Taille d’un entier
Un entier ne peut pas avoir une taille infinie. Etant un
groupe de 8 bits, il peut représenter 256 (=28) valeurs
différentes.
Les valeurs vont de (0)10 à (255)10
(0)10=(0000 0000)2
(52)10=(0011 0100)2
(127)10=(0111 1111)2
(137)10=(1000 1001)2
(253)10=(1111 1101)2
(255)10=(1111 1111)2
Pour des raisons de
lisibilité,
nous présenterons
souvent
les 8 bits par 2 quartets.
Les différents types d’entiers (en java)
Type
byte
short
int
long
float
double
Signification
Taille (en
Plage de valeurs
octets)
acceptées
Entier très court
1
-128 → +127
Entier court
2
-32 768 → +32 767
-231≈-2,147×109 →
Entier
4
+231-1≈2,147×109
-263≈-9,223×1018 →
Entier long
8
+263-1≈9,223×1018
±2-149≈1.4×10-45 →
Nombre réel simple 4
±2128-2104≈3.4×1038
±2-1074≈4,9×10-324 →
Nombre réel double 8
±21024-2971≈1,8×10308
Valeur logique
boolean
(booléen)
1
true (vrai), ou false
(faux)
Hexadécimal
• Le code hexadécimal est composé de 16 symboles :
{0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}.
• On peut le voir comme une contraction d’un nombre
binaire par quartet.
• Par exemple le nombre (1011100)2 = (0101 1100)2 peut
s’écrire :
Codage des couleurs en hexadécimal
• En programmation la notation dépend du langage :
Exemple avec (AE4F)16 :
Langage
Préfixe
Exemple
C, C++, java
0x
0xAE4F
Pascal
$
$AE4F
Basic
&h
&hAE4F
HTML
#
#AE4F
Exemple : dans le fichier CSS de la séance
précédente, remplacer red par #FF0000 puis
#FFFF00. Conclusion ?
décimal
Binaire
hexadécimal
0
0000
0
1000
8
15
1111
F
16
10000
10
1
2
Remarque : il
faut 4 bit pour
coder un chiffre
hexadécimal
3
4
5
6
7
8
9
10
11
12
13
14
Changement de base,
c’est –presque – comme en binaire…
• On utilise la méthode des divisions successives :
• On divise donc le nombre décimal N10 par la base B.
Le reste de la division est un digit du résultat
N (10)
B
92
Reste
12 en hexadécimal est
représenté par la lettre
C (10 par A, 11 par B,
… 15 par F)
12
16
5
16
5
0
Sens de
lecture du
résultat
(5C)
Numération et codage – Changements de bases
• Donner le nombre 42 (codé en décimal) en
hexadécimal.
Nombre en
base décimale
42
10
Base
16
2
16
2
0
Reste
Sens de
lecture du
résultat
(2A)
10 en hexadécimal est représenté par
la lettre A (11 par B, 12 par C, … 15
par F)
Numération et codage – Changements de bases
• Que vaut le nombre 3C (codé en hexadécimal)
en décimal.
3C (16) = 12.16 0 + 3.16 1
Rang
3
2
1
0
Poids
16 3
12 2
16 1
16 0
Valeur
4096
256
16
1
3C (16) = 12 + 48
3C (16)= 60
Quelques questions :
Effectuer les conversions suivantes :
Q1. (3C)16 = ( ? )10
Q2. (BAC)16 = ( ? )2
Q3. (BAC)16 = ( ? )10
Q4. (156)10 = ( ? )16
Q5. (1010 1100 1110)2 = ( ? )16
Ce que je ne vous ai pas dit…
• Comment coder un nombre négatif ? (voir la
partie pour aller plus loin).
• Comment coder de très grands nombres sans
utiliser une place énorme elle aussi ?
• Comment effectuer des opérations avec des
nombres binaires?
Codage ASCII
• Le codage le plus connu et le plus utilisé est
l'ASCII (American Standard Code for
Information Interchange) « Code américain
normalisé pour l'échange d'information » qui
date de 1963.
• Un fichier .txt est par exemple codé en ASCII
• Les caractères sont codés sur 7 bits soit 128
caractères possibles (ou 8 mais avec un bit de
poids fort toujours à zéro
Codage Unicode
• L’ASCII ne permettant d’encoder que les caractères
latins, sans accents il a fallu inventer un autre
encodage (en fait, il y en a plein d’autres…).
• Les intérêts d’utiliser Unicode :
• Il utilise un nombre variable de bits mais permet d’encoder
1 million de caractères.
• Les premiers caractères Unicode correspondent aux ASCII
d’où rétrocompatibilité.
• Plusieurs encodages sont possibles mais UTF-8 et
UTF-16 sont les plus répandus actuellement avec
246943 caractères assignés.
Codage Unicode et HTML
• Pour éviter des problèmes d’affichage, mieux vaut
déclarer sur sa page web le type de codage utilisé…
Extrait de table Unicode
(http://www.tamasoft.co.jp/en/general-info/unicode.html)
Principaux formats : texte
.DOC .DOCX
(Document)
Textes mis en forme (logiciel Microsoft Word).
Attention à la version de Word utilisée
.SXW .ODT
Textes mis en forme (logiciel OpenOffice)
(Open Document Text)
Utiliser : NeoOffice / OpenOffice (gratuit :) )
.PDF
(Portable Document
Format)
.PS .EPS
(PostScript et Encapsuled
PostScrip)
Utiliser : Wordviewer (Windows) ; logiciels de
traitement de texte
Format du logiciel Acrobat de Adobe
Utiliser : Adobe reader (gratuit)
Typographie et mise en page. Pour imprimantes
laser.
Utiliser : GhostScript, Aperçu ; envoyer directement
à une imprimante laser compatible.
Principaux formats : texte
.PPT .PPS .PPTX
(PowerPoint et
PowerPoint Slideshow)
Diapositives électroniques (logiciel PowerPoint de
Microsoft).
Utiliser : PowerPoint Viewer .
.XLS .XLSX
Tableur Excel de Microsoft.
(Excel Sheet)
Utiliser : Excel, visionneuses gratuites de Microsoft,
OpenOffice.
.HTML .HTM
Rédaction de page Web
(Hypertext Markup
Language)
Utiliser : Mozilla, Firefox, Safari, Microsoft Internet
Explorer ou tout autre navigateur Internet
Pour éditer ces fichiers : tout éditeur de .TXT
(TextEdit, ...) si l'on connaît le langage HTML Editeur web : Adobe Dreamweaver - Mozilla
Composer - Frontpage
Représentation numérique de
l’information
Cette partie sera vue en fin d’année en Sciences
Physiques aussi pouvez-vous la considérer comme
facultative.
Codage binaire: sons
Pour numériser du son enregistré par micro ou créé par un instrument
acoustique ou électrique
– On découpe le son en échantillons de temps et on code chaque échantillon
sur un certain nombre de bits  Analog to Digital Converter (ADC)
– Fréquence d’échantillonnage: nombre d’unités de sons (échantillons)
codées par seconde
• Ex. CD: 44,1 kHz (44100 échantillons / seconde)
• Rem: Seuil audible pour l’oreille humaine: +/- 20 kHz, mais il faut échantillonner 2 fois
plus vite que la fréquence du son pour la capturer
– Nombre de bits par échantillon
• Ex. CD: 16 bits
– Nombre de canaux:
• mono (1) v. stéréo (2)
– Pour rejouer le son, il faut un
Digital to Analog Converter (DAC)
–  1 minute d’enregistrement
en stéréo et qualité CD:
= 2 * 16 * 44100 * 60 = 84,672,000 bits
= 10,584,000 bytes ≈ 10Mb / min.
La représentation du son
Onde
sinusoïdale
À une fréquence de 44,1 khz
Une fois
numérisé
L’onde initiale ainsi découpée donne une onde
discontinue. Il y a une certaine perte
d’information. Cependant, l’intervalle de temps
entre deux mesures d’amplitudes successives
est si minime que l'oreille ne percevra pas la
différence lors de l’audition.
Questions
Q.1. Calculer la taille d’un fichier audio en
octets et en Méga octets d'un extrait sonore
de 3 minutes (qualité CD).
Q.2. Calculer la taille d’un fichier téléphonique
en octets et en Kilo octets d'un extrait de
communication de 2 minutes (qualité
téléphone numérique : F ech = 8 khz, codé
sur 8 bits).
Principaux formats : audio
.WAV
Format utilisé par Windows.
(Waveform Audio File
Format)
Utiliser : Windows : Lecteur multimédia. Mac
QuickTime.
.MP3
Format public, (qualité
(Moving Pictures Expert
Utiliser : Windows : Lecteur multimédia. Mac
QuickTime…
Group)
.RA .RAM
(RealAudio)
.OGG
(OggSquich)
:
 disque compact).
:
Séquences sonores et vidéo par Internet.
Utiliser : RealAudio
Format open source de la fondation Xiph.org. Très
bonne qualité.
Utiliser : Windows : Lecteur multimédia. Mac
QuickTime.
:
49
Représentation numérique de
l’information
Comment est représentée une image
Exemple d'une image en noir(1) et blanc(0) :
I.3 Codage de l’information
Codage d’une image
• On appelle résolution le nombre de pixel par unité de
surface.
• Pour une image en noir et blanc, chaque pixel est codé sur
1 bit : 0 = blanc et 1 = noir.
• Ce type de codage peut convenir pour
un plan ou un texte mais on voit ses
limites lorsqu'il s'agit d'une photographie.
303 pixels
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
303 pixels
36 bits
303 x 303 x 1 bit = 91809 bits
I.3 Codage de l’information
Codage en niveaux de gris
• Chaque pixel est codé sur plusieurs bits.
• Si on code chaque pixel sur 2 bits on aura 4
possibilités (noir, gris foncé, gris clair, blanc).
L'image codée sera très peu nuancée.
• En général, on code plutôt sur
8 bits = 1 pixel = 1 octet
On a alors 256 possibilités
(on dit 256 niveaux de gris).
303 pixels
303 x 303 x 1 octet = 91809 octets
= 734 472 bits
I.3 Codage de l’information
Codage en couleur 24 bits
• On parle de codage RVB = Rouge, Vert, Bleu
• Chaque couleur est codée sur 8 bits
• La couleur du pixel est l’association des 3 couleurs
• Chaque pixel est codé sur 24 bits (aussi appelé true
color)
303 x 303 x 3 octets
= 275 424 octets
= 2 203 392 bits
303 pixels
303 pixels
Codage en couleur (suite)
• Coder sur 3 octets l’intensité des 3 composantes
• Je veux coder des couleurs ?
• En anglais Red Green Blue (RGB)
Codage d'une image en couleurs 8 bits
• Dans ce cas on attache une palette de 256 couleurs
à l'image.
• Ces 256 couleurs sont choisies parmi les 16 millions
de couleurs de la palette RVB. Pour chaque image
le programme recherche les 256 couleurs les plus
pertinentes.
• Chaque code (de 0 à 255) désigne une couleur.
• L'image occupe 3 fois moins de place en mémoire
qu'avec un codage 24 bits. L'image est moins
nuancée : sa qualité est bonne mais moindre.
Quelques questions
Q.1. Pourquoi parle-t-on dans la diapositive précédente de « 16 millions »
de couleurs ?
Q.2. La taille en octets d’une image Bitmap se définit ainsi :
Nb_de_colonnes * Nb_de_lignes * Nb_de_bits_par_pixel / 8 Pourquoi
divise-t-on par 8 ?
Q.3. La taille de l’image est un paramètre important à considérer pour des
raisons de stockage sur le disque dur (emplacement disponible) mais
aussi lors de la construction d’un site Web. Lorsqu’on affiche des images
sur une page Web, il faut se poser la question de la durée du
chargement des fichiers. Une ligne ADSL (standard) a un débit idéal de
512 Ko/s, 1 Mo/s, 2 MO/s… Aussi pour une image de 10 Ko, il faudra
0,02 sec avec une ligne ADSL (512 Ko). Combien faudrait-il avec une
image de 120 Ko?
Q.4. Quelle est la taille (en Kio et Mio) d’un fichier image de 500 x 500 codé
sur 24 bits ? Vérifiez en ouvrant une image quelconque au format bmp,
en la redimensionnant dans Paint puis en cherchant sa taille.
Principaux formats : images
.BMP
(Bitmap)
Image graphique stockant les pixels sous forme de
tableau de points. Simple et passe partout.
Utiliser : navigateurs, logiciels de traitement d'image.
.GIF
(Graphics Interchange
Format)
.JPEG .JPG
(Joint Photography
Petites images, icônes, boutons des pages Web, etc.
Fichiers compressés (  assez compacts), 256
couleurs maximum
Utiliser : navigateurs, logiciels de traitement d'image.
Photos et images texturées. Fichiers très compacts
(compression efficace mais avec perte de qualité)
Experts Group)
Utiliser : navigateurs, logiciels de traitement d'image.
.TIFF .TIF
Images de qualité. Compression sans perte. « Gros »
Fichiers.
(Tagged Image File
Format)
Utiliser : Windows : Irfan View. Mac
: SimpleImage
48
Principaux formats : vidéo
.AVI
(Audio Video Interleave)
Format vidéo générique pour Windows
Généralement visualisation en différé
Fichiers peu volumineux, échangeables, bonne
qualité
Utiliser : Windows : Lecteur multimédia. Mac
QuickTime
.MOV .QT
(QuickTime Movie)
:
Développé par Apple. Excellente qualité
d'image.
Généralement visualisation en différé.
Utiliser : QuickTime
.MPEG .MPG
Norme publique
(Moving Pictures Expert
Généralement visualisation en différé.
Group)
Utiliser : Windows : Lecteur multimédia. Mac
QuickTime
:
50
Pour aller plus loin
• Un petit jeu :
http://forums.cisco.com/CertCom/game/binary_
game.swf
• Les entiers relatifs (48),
• Méthode du complément à 2 (51),
• Réels à virgule flottante (55),
• Addition de nombres binaires (57),
• Multiplication de nombres binaires (58).
Les entiers relatifs
Pour pouvoir représenter des entiers relatifs, on
peut utiliser un bit de signe.
Ce codage utilise le bit de poids fort (bit le plus à
gauche) pour représenter le signe (la valeur 0
étant utilisée pour un nombre positif et la valeur 1
pour un nombre négatif) et le reste des bits pour
représenter la valeur absolu de l'entier.
Ainsi sur 8 bits (1 octet), on peut coder 2*27-1
valeurs (de -127 à +127)
Complément à deux
(0)10 = (0000 0000)A2
(-128)10= (1000 0000)A2
(1)10 = (0000 0001)A2
(-2)10 = (1111 1110)A2
(127)10 = (0111 1111)A2
(2)10
= (0000 0010)A2
Quelques questions
Q.1. Calculer l’intervalle de valeurs codées en
complément à 2 sur un octet ?
Q.2. Combien vaut (11011101) en complément à 2 ?
Q.3. Effectuer les opérations suivantes en binaire
sur 8 bits ? Vérifier le résultat ? Conclusion.
(a) 10010110 + 00101101
(b) 11001110 - 10100111
(c) 00001011 x 00010110
Réels à virgule flottante
La précision dans ce codage sera limitée mais suffisante car
il ne prendra en compte que les chiffres significatifs.
Les nombres seront représentés dans la forme normalisée
suivante :
+/- 0,M * BE
+/- : codage du signe
M : La mantisse sera un
nombre de x chiffres
dans la base B
E : L'exposant sera un
nombre de y chiffres
dans la base B
Quelques exemples
(4562,05)10 se normalise en virgule flottante en base 10 par
0,456205*104
● Mantisse : 456205
● Exposant : 4
● Signe : +
(-0,00145)10 se normalise en virgule flottante en base 10 par 0,145*10-2
● Mantisse : 145
● Exposant : -2
● Signe : -
L’addition de nombres binaires
Le principe général est le même que pour l'addition
de nombres dans n'importe quelle base B.
multiplication de nombres binaires
Autres opérations arithmétiques de nombres binaires
Exemples :
NON(00110100) = 11001011
(0011 0100) ET (1000 0101) = (0000 0100)