• Aucun résultat trouvé

1- REPRÉSENTATION DE L’INFORMATION

N/A
N/A
Protected

Academic year: 2022

Partager "1- REPRÉSENTATION DE L’INFORMATION"

Copied!
37
0
0

Texte intégral

(1)

L’INFORMATION

Techniques de Programmation L.Cuvillon, P. Graebling

(2)
(3)

Représentation des nombres

•  Pendant de nombreux siècles, on a cherché la meilleure façon de représenter les nombres et les grandeurs.

•  Peuples primitifs : alignement de bâtonnets

•  Invention du zéro autorise un système de numération souple

(4)

Système décimal

Base du système de numération usuel est 10

•  10 doigts = auxiliaire de calcul

Système décimal autorise la conception de machines à calculer mécaniques (Pascaline en 1645, Babbage & Ada Lovelace 1822)

4

(5)
(6)

Système décimal

Base du système de numération usuel est 10

•  10 doigts = auxiliaire de calcul

Système décimal autorise la conception de machines à calculer mécaniques (Pascaline en 1645, Babbage & Ada Lovelace 1822)

6

–  Existence de systèmes physiques à 2 états d’équilibre

(circuits électroniques (mémoires)) impose l’utilisation de systèmes de numération différents : binaire

(7)

Système décimal

(puissance de 10) Exemple : 1248 (10)

1248 = 1000 + 200 + 40 + 8

= 1.10 3 + 2.10 2 + 4.10 1 + 8.10 0

•  digits utilisés : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

Principe identique pour toutes les bases

(8)

Système décimal

Un nombre entier est représenté de façon unique par une expression de la forme :

N = an.pn + an-1.pn-1 + ... + a0.p0 (0 < ai < p -1)

* p : base

* a i : digits

* notation : an an-1...a0

8

chiffre de poids le plus fort (MSD: most significant digit)

chiffre de poids le plus faible (LSD: lest significant digit)

(9)

Système binaire

Calculateurs à 2 états d’équilibre

Utilisation de 2 digits : 0 et 1 (bits = binary digits)

Exemple : 10010101 (2)

10010101 (2) = 1.2 7 + 1.2 4 + 1.2 2 + 1.2 0

= 128 + 16 + 4 + 1 = 149 (10)

(10)
(11)

Systèmes octal et hexadécimal

•  Longueur des nombres en binaire et la confusion qui en résulte utilisation de bases plus pratiques

  Système octal (base 8)

  Système hexadécimal (base 16)

Exemples :

–  225 (8) = 2.8 2 + 2.8 1 + 5.8 0 = 128 + 16 + 5 = 149 (10) –  95 (16) = 9.16 1 + 5.16 0 = 144 + 5 = 149 (10)

(12)

Systèmes octal et hexadécimal

•  Digits  en  base  8      :  0,  1,  2,  3,  4,  5,  6,  7  

•  Digits  en  base  16  :  0,  1,  2,  ...  8,  9,  A,  B,  C,  D,  E,  F    

12

Les bases utilisées sont des puissances de deux

Conversion avec système binaire immédiate

Exemple :

2AC (16) = 2.16 2 + 10.16 1 + 12.16 0

= 512 + 160 + 12 = 684 (10)

(13)

Systèmes octal et hexadécimal

• 

FF

(16)

=

(10)

• 

57

(16)

+ 1 =

(16)

=

(10)

• 

59

(16)

+ 1 =

(16)

=

(10)

• 

9F

(16)

+ 1 =

(16)

=

(10)

• 

71

(8)

=

(10)

• 

57

(8)

+ 1 =

(8)

=

(10)

EXERCICE

255

58 88

A0 160 5A 90

57

60 48

(14)

Systèmes octal et hexadécimal

• 

AE

(16)

+ 5 =

(16)

=

(10) • 

35

(8)

+ 3 =

(8)

=

(10)

14

EXERCICE 2

B3 179 40 32

(15)

Changements de base

Base p Base 10 : trivial

•  10010101 (2) = 1.2 7 + 1.2 4 + 1.2 2 + 1.2 0

= 128 + 16 + 4 + 1 = 149 (10)

•  225 (8) = 2.8 2 + 2.81+ 5.8 0 = 128 + 16 + 5 = 149 (10)

•  95 (16) = 9.16 1 + 5.16 0 = 144 + 5 = 149 (10)

(16)

Changements de base

Base 10 Base p : divisions successives

16

48 2

24 2 0

12 2 0

6 2 0

3 2 0

1 2 1

0 1

48

(10)

= 110000

(2)

(17)

Changements de base

Base 10 Base p : divisions successives

135 8

16 8 7

2 8 0

0 2

135

(10)

= 207

(8)

3115 16

194 16 11

12 16 2

0 12

3115

(10)

= C2B

(16)

(18)

Changements de base

Base 2 Base 8 Base 16

simples si les bases sont des puissances de deux

18

base 8 = base 2 3

1 0 0 1 0 1 0 1 2 2 5

base 16 = base 2 4

1 0 0 1 0 1 0 1

9 5

(19)

•  1 octet (byte en anglais) = 8 bits

•  Systèmes informatiques travaillent sur des mots de longueur fixe (8, 16, 32 ou 64)

•  De manière générale :

Nombre d’octets valeurs décimales

1 octet 0 à 255 ou -128 à +127 (256 codes!)

2 octets 0 à 65535 ou -32768 à +32767 4 octets 0 à 4 294 967 295 ou ....

•  Possibilité d’une dépassement d’entier (integer overflow):

si mot trop petit pour stocker le résultat de l’opération

Ø En général: conservation des LSD bits, équivaut à modulo %(2n)

Octets - Mots

(20)

•  1 KB= 1Ko = 210 octets = 1024 octets

•  1 MB= 1Mo = 1024 Ko = 220 octets = 1 048 576 octets

•  1 GB= 1 Go = 230 octets

•  La convention des programmeurs, des systèmes d’exploitations, des mémoires (RAM,Flash)

•  Or les fabricants de disques durs (!) et la norme SI:

•  1 kB= 1ko = 1000 octets

•  1 GB= 1Go = 109 octets (=0.93 * 230 octets)

Ø introduction de notations peu usitées pour différencier

•  KiB (Kio)= 1 kibi octet = 210 octets pour faire la différence

•  1 MiB = 1 mebi octet = 220 octets

Octets - Mots

20

(21)

Nombres négatifs

(binaire)

(Illustrés ici pour l’exemple sur des mots de 4 bits , mais valable pour n bits)

•  Solution immédiate : le MSD pour le 1 bit de signe 0 positif 1 négatif

ainsi 0010 (2) = 2 (10) 1010 (2) = -2 (10)

•  Problème : l’addition binaire de ces 2 nombres ne donne pas le bon résultat (=1100(2) = - 4(10)) impose un traitement du signe et des circuits différents pour l’addition et la soustraction

•  Solution: forme complémentée

(22)

Nombres négatifs

(binaire)

: complément à 1 et 2

•  Le complément à 1: le nombre opposé est obtenu en inversant chaque bit du nombre (0 è 1 et vice versa)

ainsi 0010 (2) = 2 (10) 1101 (2) = -2 (10)

•  Le complément à 2 : le complément à 1 auquel on ajoute 1

ainsi 0010 (2) = 2 (10)

1100 (2) = -2 (10) (= 1101 (2)+1)

Note: le MSD donne encore le signe du nombre.

22

(23)

Nombres négatifs

(binaire)

: complément à 1 et 2

•  Le complément à 1: le nombre opposé est obtenu en inversant chaque bit du nombre (0 è 1 et vice versa)

ainsi 0010 (2) = 2 (10) 1101 (2) = -2 (10)

•  Le complément à 2 : le complément à 1 auquel on ajoute 1

ainsi 0010 (2) = 2 (10)

1110 (2) = -2 (10) (= 1101 (2)+1)

Note: le MSD donne encore le signe du nombre.

(24)

Nombres négatifs

(binaire 4 bits: 16 valeurs)

24

Décimal

+7 +2 +1 +0 -0 -1 -7 -8

Bit de signe

0111 0010 0001 0000 1000 1001 1111

Complément à 1

0111 0010 0001 0000 1111 1110 1000

Complément à 2

0111 0010 0001 0000 1111 1001 1000

0 unique en complément à 2 (bit en dépassement tronqué):

-0 è 1111(2) +1 = 10000(2)= 0000 (2)

L’exception du plus petit élément:

-8 est son propre

complément à 2

(25)

Nombres négatifs

(binaire)

xkcd.com

(26)

Nombres négatifs

Exemple  :    63  -­‐  28  =  35  

   

 

26

00111111

+ 11100100

1 00100011

complément à 2

(bit en dépassement tronqué)

63 00111111 - 28 + 11100011 35 1 00100010

1 00100011

complément à 1

(bit en dépassement à rajouter à l’addition ! )

(27)

Calculer le représentation binaire, puis hexadécimale de 13 et -5 avec

•  la convention du complément à 2;

l’utilisation de mots de 1 octet.

•  Calculer alors par une addition binaire la somme des 2 nombres.

(28)

Nombres réels

Virgule flottante : 12E8 = 12 x 10 8

•  Représentation non unique - 12.34 = - 1234 x 10 -2

= - 0.001234 x 10 +4

= - 0.1234 x 10 +2

•  Codage signe du nombre partie entière

partie décimale (la mantisse) signe de l’exposant

exposant

28

(29)

Nombres réels

•  Représentation normalisée partie entière

•  Décalage de l’exposant signe de l’exposant

•  Norme IEEE 754 (simple précision)

•  nombre= (bit de signe) 1.mantisse * 2 exposant-127

• 

Exemple :

-2.5 = - 1.25 * 21 mantisse = .25(10) = 2-2 =.01(2)

31 30 23 22 0

-

128

(10)

.25

(10)

signe exposant décalé mantisse

1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

(30)

Représentation des caractères

Systèmes électroniques avec autant d’états stables que de caractères : IMPOSSIBLE

•  Systèmes à 2 états stables codage binaire

•  128 symboles suffisent : A-Z, a-z, 0-9, + symbole mise en forme 7bits

•  Code ASCII (ici, représentation décimale du code) :

30

space 32 # 35 ? 63 car. return 13 ... ... ... ...

A 65 a 97 0 48

B 66 b 98 1 49

caractère code caractère code caractère code

(31)

Représentation des caractères

Or le mot de base est l’octet è 128 symboles encore libres

•  Création de jeux de caractères ou tables ascii étendues pour les codes > 127(10)

•  En particulier: le jeu de caractères latins,

ç 251 ê 234 ÷ 247

à 195 µ 181 © 169

caractère code caractère code caractère code

(32)

Codage de l ’ information

Quelle est la signification de la suite d’octets suivante ?

4A 4F 55 52

32

(33)

Codage de l ’ information

Quelle est la signification de la suite d’octets suivante ?

4A 4F 55 52

•  Une suite de 4 entiers positifs

•  Une suite de 4 entiers relatifs (complément à 2)

•  Une suite de 2 entiers de 16 bits

•  Une chaine de caractère : «JOUR» en ASCII

•  Une nombre à virgule flottante, nombre réel sur 32 bits

•  Qui codent:

•  Des données (texte, nombres)

•  Des niveaux de gris dans une image

•  Des amplitudes sonores

(34)

Codage de l ’ information

•  Intérêt de connaître le codage de l’information (alors que le langage de programmation va nous fournir une abstraction):

•  Debugger, trouver l’erreur

•  Hacker/modifier des données ou un programme lui-même

•  Exemples:

•  Chercher et Modifier la valeur du compteur du nombre de vies dans la sauvegarde d’un jeu (mais c’est souvent crypté de nos jours)

Modifier le code indiquant le codec vidéo utilisé dans un fichier AVI pour que celui-ci soit correctement reconnu par les lecteurs vidéos

•  Corriger la fréquence d’un fichier mp3 incorrectement créé ou corrompu.

34

(35)
(36)

Le fourCC

•  Un code de 4 caractères : 4 octets indiquant la méthode de compression utilisée pour la vidéo (Codec: compression- décompression) au début du fichier

•  Entre autre:

•  DX50, DIVX [44 49 56 58]: divx

•  FMP4 [46 4D 50 34]:alternative au format divx créé par ffmpeg (codecs libre)

•  H264

•  SVQ3: H264 variante pour Quick Time by Sorenson

•  Note: avi, mkv, mpg, mov sont des formats pour contenir la vidéo et indépendant du codec utilisé

(37)

•  Contient le bitrate et la fréquence d’echantillonage

•  Encodé avec un logiciel buggé

•  Le fichier est à 41 KHz et 128 kbit/s

•  Or l’entête du fichier indique 48KHZ et 128 bits/s

Références

Documents relatifs

Dans le second temps nous parlerons des différentes techniques qui seront employées pour la réduction de la dimension à savoir : les paramètres statistiques, l’analyse en

Plus précisément, au terme du cours, l'étudiant sera initié aux notions de base de la conception de machine : analyse fonctionnelle des machines et de leurs composants,

Le second objectif est de présenter la modélisation d’un système multi machines, 'SMMCS' constitué de deux machines asynchrones à cage d’écureuil: une machine

'LVHDVHVRI 2HVRSKDJXV 6WRPDFKDQG

'LVHDVHVRIRUDO

un million dix millions

[r]

deux cent trente-quatre mille huit cent vingt-sept six millions trois cent quarante-deux mille quatre-vingt-trois mille quatre-vingt-dix-neuf sept cent