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 possibles 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, Du texte, 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 : nouvelles appellations
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.
Ex : vérifiez la version du système d’exploitation de l’ordinateur devant lequel vous êtes…
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, le nombre 2542 se décompose ainsi : 2542(10) = 2.103+ 5.102+ 4.101+ 2.100 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. Base
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
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. »
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 N10 par la base B(binaire, base 2). Le reste de la division est un digit du résultat 92 2 46 23 11 1 Reste Sens de lecture du résultat (1011100) Nombre en base décimale Base 5 Bit de poids fort Bit de poids faible
Exemple : Donner le nombre 42 (codé en décimal) en binaire. 21 10 1 5 Reste Sens de lecture du résultat (101010) Nombre en base décimale Base
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 Pour des valeurs plus grandes, il faudra plus d’un octet… (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) Signification Taille (en octets) Plage de valeurs acceptées byte Entier très court 1 -128 → +127 short Entier court 2 -32 768 → +32 767 int Entier 4 -231≈-2,147×109 → +231-1≈2,147×109 long Entier long 8 -263≈-9,223×1018 → +263-1≈9,223×1018 float Nombre réel simple ±2-149≈1.4×10-45 → ±2128-2104≈3.4×1038 double Nombre réel double ±2-1074≈4,9×10-324 → ±21024-2971≈1,8×10308 boolean Valeur logique (booléen) 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 couleur en hexadécimal En programmation, la notation permettant de voir qu’on est en hexadécimal dépend du langage : Exemple avec (AE4F)16 : Exemple : dans le fichier CSS de la séance précédente, remplacer red par #FF0000 puis #FFFF00. Conclusion ? Faire un tour sur : http://www.proftnj.com/RGB3.htm Langage Préfixe Exemple C, C++, java 0x 0xAE4F Pascal $ $AE4F Basic &h &hAE4F HTML # #AE4F
décimal Binaire hexadécimal 0000 1 2 3 4 5 6 7 8 1000 9 10 11 12 13 14 15 1111 F 16 10000 Remarque : il faut 4 bit pour coder un chiffre hexadécimal Recopier et compléter le tableau ci-contre.
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 92 16 5 12 Reste Sens de lecture du résultat (5C) N (10) B 12 en hexadécimal est représenté par la lettre C (10 par A, 11 par B, … 15 par F)
Numération et codage – Changements de bases Donner le nombre 42 (codé en décimal) en hexadécimal. 42 16 2 10 Reste Sens de lecture du résultat (2A) Nombre en base décimale Base 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 x 160 + 3 x 161 =12 + 48 = 60 Rang 3 2 1 Poids 16 12 Valeur 4096 256
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?
Représentation numérique du texte
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 bits 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 Utiliser : Wordviewer (Windows) ; logiciels de traitement de texte .SXW .ODT (Open Document Text) Textes mis en forme (logiciel OpenOffice) Utiliser : NeoOffice / OpenOffice (gratuit :) ) .PDF (Portable Document Format) Format du logiciel Acrobat de Adobe Utiliser : Adobe reader (gratuit) .PS .EPS (PostScript et Encapsuled PostScrip) Typographie et mise en page. Pour imprimantes laser. Utiliser : GhostScript, Aperçu ; envoyer directement à une imprimante laser compatible. 45
Principaux formats : texte .PPT .PPS .PPTX (PowerPoint et PowerPoint Slideshow) Diapositives électroniques (logiciel PowerPoint de Microsoft). Utiliser : PowerPoint Viewer . .XLS .XLSX (Excel Sheet) Tableur Excel de Microsoft. Utiliser : Excel, visionneuses gratuites de Microsoft, OpenOffice. .HTML .HTM (Hypertext Markup Language) Rédaction de page Web 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 Faire l’activité sur la représentation du texte sur la fiche distribuée. 47
Le son 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 L’onde initiale ainsi découpée donne une onde numérisé 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 (Waveform Audio File Format) Format utilisé par Windows. Utiliser : Windows : Lecteur multimédia. Mac : QuickTime. .MP3 (Moving Pictures Expert Group) Format public, (qualité disque compact). QuickTime… .RA .RAM (RealAudio) Séquences sonores et vidéo par Internet. Utiliser : RealAudio .OGG (OggSquich) Format open source de la fondation Xiph.org. Très bonne qualité. 49
Représentation numérique de l’information Les images
Comment est représentée une image Exemple d'une image en noir(1) et blanc(0) :
Codage d’une image I.3 Codage de l’information 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 303 x 303 x 1 bit = 91809 bits 1 36 bits
Codage en niveaux de gris I.3 Codage de l’information 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
Codage en couleur 24 bits On parle de codage RVB = Rouge, Vert, Bleu 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 pixels 303 x 303 x 3 octets = 275 424 octets = 2 203 392 bits
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) Petites images, icônes, boutons des pages Web, etc. Fichiers compressés ( assez compacts), 256 couleurs maximum .JPEG .JPG (Joint Photography Experts Group) Photos et images texturées. Fichiers très compacts (compression efficace mais avec perte de qualité) .TIFF .TIF (Tagged Image File Images de qualité. Compression sans perte. « Gros » Fichiers. 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 (Moving Pictures Expert Group) Norme publique 50
Pour aller plus loin Un petit jeu : http://forums.cisco.com/CertCom/game/binary_ game.swf Les entiers relatifs (p48), Méthode du complément à 2 (p51), Réels à virgule flottante (p55), Addition de nombres binaires (p57), Multiplication de nombres binaires (p58).
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 (-2)10 = (1111 1110)A2 (-128)10= (1000 0000)A2 (127)10 = (0111 1111)A2 (1)10 = (0000 0001)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
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)