Codification et représentation de l’information Enseignant: Mahseur mohammed Groupe FB: mi2016ua1 Chaine YT: Cours informatique Mahseur 1
Chapitre1 : Codification et représentation des nombres 2
1.Les bases de numérotations Soit I un ensemble d’informations, soit A = {a 1, a 2,…... a b }. a 2 a 1 a 3 pour un codage de longueur fixe n est une base b on peut coder: alphabet caractère de A mot La base du codage est le cardinal de l’ensemble A b n mots 3
Célèbres bases Décimale, A ={0,1,2,3,4,5,6,7,8,9} Binaire, A ={0,1} Octale, A ={0,1,2,3,4,5,6,7} Hexadécimale, A ={0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F} 4
Changement de bases (transcodage) Décimale base b Convertir un nombre décimal (N) 10 vers la base b se fait par la conversion de la partie entière à part (divisions successives du nombre par la base jusqu’à avoir un résultat nul). Et la conversion de la partie décimale a part (multiplications successives jusqu’à avoir un résultat nul ou obtenir une précision donnée ). 5
Exemple: (143,526) 10 =(?) 2 avec 7 chiffres après la virgule Partie entière: divisions successives 6
Partie décimale: multiplications successives 0,664*2=1,328 0,526*2=1,052 0,052*2=0,104 0,104*2=0,208 0,208*2=0,416 0,416*2=0,832 0,832*2=1,664 (0,526) 10 =(0, ) 2 Donc: (143,526) 10 =( , ) 2 7
Base b décimale Pour convertir un nombre écrit en base b (a n-1 a n-2 ……a 1 a 0, a -1 a -2 ……a -p ) b, il suffit de l’écrire sous sa forme polynomiale dans la base b, ensuite faire l’addition décimale. (a n-1 a n-2 ……a 1 a 0, a -1 a -2 ……a -p ) b = a n-1 xb n-1 +a n-2 xb n-2 +……..+a 1 xb 1 +a 0 xb 0 +a -1 xb -1 +a -2 xb - 2 +…..a -p xb -p 8
Exemple : (1572, 36)8 = 1x8 3 +5x8 2 +7x8 1 +2x8 0 +3x x8 -2 = ,375+0,09375= (890,46875)
Cas particuliers Elle consiste à regrouper les bits en trois positions de droit à gauche pour la partie entière et de gauche a droit pour la partie décimale, puis remplacer chaque groupe par son équivalent octal, binaire octale 10
Exemple: ( , ) 2 =(32,34) 8 ( , ) 2 ( , ) , octal binaire
Cas particuliers Il suffit de remplacer chaque digit octal par son équivalent binaire en trois positions, octale binaire 12
Exemple: (726,31) 8 =(?) 2 (7 2 6, 3 1) , (726,31) 8 =( , ) 2 octalbinaire
Cas particuliers Elle consiste à regrouper les bits en quatre positions de droit à gauche pour la partie entière et de gauche a droit pour la partie décimale, puis remplacer chaque groupe par son équivalent hexadécimal, binaire hexadécimale 14
Exemple: =( , ) 2 =(1A,B8) 16 ( , ) 2 ( , ) 1 A B 8, décimHexadBinaire A B C D E F
Cas particuliers Il suffit de remplacer chaque digit hexadécimal par son équivalent binaire en quatre positions, hexadécimale binaire 16
Exemple: (7D6,3E) 16 =(?) 2 (7 D 6, 3 E) , (7D6,3E) 16 =( , ) 2 dec hex Binaire A B C D E F
2 Représentation interne des données 1- Représentation des Entiers non signés 18
Addition 0+0=0 0+1=1+0=1 1+1=0 avec retenue = =1 avec retenue =1 19
Exemple:
Soustraction 0-0=0 1-0=1 0-1=1 avec ‘1’ emprunté 1-1=0 21
Exemple:
Multiplication 0*0=0 1*0=0*1=0 1*1=1 23
Exemple:
Division 0/1=0 1/1=1 25
Exemple:
2- représentation des entiers signés Ce sont des nombres possédant un signe + ou -, 3 méthodes pour les représenter: a)SVA: signe et valeur absolue b)Cà1: complément à 1 c)Cà2 : complément à 2 27
SVA Si un nombre est représenté sur n bits valeur absolue (n-1) bits signe (1) bits 0 représente un nombre positif 1: représente un nombre négatif Exemple: (1101) SVA =(-101) 2 =(-5) 10 Simple Les calculs !! L’intervalle des nombres représentables sur n bits en SVA est: [-(2 n-1 -1), +(2 n-1 -1)] Le nombre de combinaisons possibles sur n bits est: 2 n Le nombre de valeurs : 2 n -1 (deux combinaisons pour le zéro) 28
Complément à 1 Le premier bit est réservé pour le signe et si le nombre est positif alors il garde son format, sinon (il est négatif) alors chaque bit est inversé (0 devient 1 et 1devient 0). Tels que : L’intervalle des nombres représentables sur n bits en C1 est: [-(2 n-1 -1), +(2 n-1 -1)] Le nombre de combinaisons possibles sur n bits est: 2 n Le nombre de valeurs : 2 n -1 (deux combinaisons pour le zéro) 29
Exemple: (-5) 10 (-101) 2 (1101) SVA (1010) C1 (+6) 10 (+110) 2 (0110) SVA (0110) C1 30
Addition (soustraction) en C1 Elle se base sur le principe suivant : Si aucune retenue n’est générée par le bit de signe, le résultat est correct, et il est représenté en C1 Sinon, elle sera enlevée et additionnée au résultat de l’opération, celui-ci est représenté en C1 31
Exemple: opération sur 5 bits -13+4= (-1101) 2 +(+0100) 2 =(11101) SVA +(00100) SVA =(10010) C1 + (00100) C1 (10010) C1 (00100) C1 ( ) C Pas de retenue =(10110) C1 =(11001) SVA On a: C1(C1(n))=n =(-1001) 2 =(-9) 10 32
Exemple: opération sur 5 bits +13-4= (+1101) 2 +(-0100) 2 =(01101) SVA +(10100) SVA =(01101) C1 + (11011) C1 (01101) C1 (11011) C1 ( ) C Une retenue =(01001) C1 =(01001) SVA C’est un nombre positif: (C1(n))=n =(+1001) 2 =(+9) (01001) C1 33
Complément à 2 Le premier bit est réservé pour le signe et si le nombre est positif alors il garde son format, sinon (il est négatif) alors il est transformé en C1 puis ajouté à 1 Tels que : L’intervalle des nombres représentables sur n bits en C2 est: [-(2 n-1 ), +(2 n-1 -1)] Le nombre de combinaisons possibles sur n bits est: 2 n Le nombre de valeurs : 2 n 34
C2SVADécimal Exemple sur 4bits Le plus petit nombre positif Le plus grand nombre négatif Le plus grand nombre positif Le plus petit nombre négatif Domaine couvert=[-2 n-1, +2 n-1 -1] =[-2 4-1, ] =[-8, +7] 35
Exemple: (-5) 10 (-101) 2 (1101) SVA (1010) C1 (+6) 10 (+110) 2 (0110) SVA (0110) C1 (1011) C2 (0110) C2 36
Addition (soustraction) en C2 Elle se base sur le principe suivant : S’il y a une retenue générée par le bit de signe, elle est ignorée et le résultat est en C2, Sinon le résultat est correct et il est représenté en C2. 37
Exemple: opération sur 5 bits -13+4= (-1101) 2 +(+0100) 2 =(11101) SVA +(00100) SVA =(10010) C1 + (00100) C1 (10011) C2 (00100) C2 ( ) C Pas de retenue =(10111) C2 =(11000) c1 On a: C2(C2(n))=n =(-1001) 2 =(-9) 10 =(10011) C2 + (00100) C2 =(11001) SVA 38
Exemple: opération sur 5 bits +13-4= (+1101) 2 +(-0100) 2 =(01101) SVA +(10100) SVA =(01101) C1 + (11011) C1 (01101) C2 (11100) C2 ( ) C Une retenue négligée =(01001) C2 =(01001) SVA C’est un nombre positif: (C2(n))=n =(+1001) 2 =(+9) =(01101) C2 + (11100) C
Débordement – overflows: Espace réservé pour le résultat est insuffisant. Exemple : addition de deux nombres de même signe avec un résultat de signe différent. 40
3-Représentation des nombres réels Comment représenter la virgule en machine ? Comment indiquer a la machine la position de la virgule ? Virgule fixe Virgule flottante 41
Virgule fixe Utilisée par les premières machines, possède une partie ‘entière’ et une partie ‘décimale’ séparées par une virgule. La position de la virgule est fixe d’où le nom. Exemple: Dans une représentation sur 8 bits tels que: 1bit représente le signe, 4 bits représentent la partie entière et 3 bits représentent la partie décimale on a: (-1011,11) 2 ( ) en machine Simple Puissance faible 42
Virgule flottante Utilisée actuellement sur machine, définie par : ±m. b e un signe + ou – une mantisse m (en virgule fixe) un exposant e (un entier signé) une base b (2,8,10,16,…) Exemple: (+3,25) 10 =(+11,01) 2 =[(+0,1101x2 2 )=(+1,101x2 1 ) =(+110,1x2 -1 )=(+1101x2 -2 )] en virgule flottante Plusieurs manières de représenter un nombre réel en virgule flottante (différentes valeurs de m et e) Donc il faut une normalisation 43
Codage en Virgule Flottante Normalisé SMEbM 1 bit q bits p bits SM : signe de la mantisse, il est codé sur 1 bit ayant le poids fort : le signe – : bit 1 ; le signe + : bit 0 Eb : Exposant biaisé, il est placé avant la mantisse pour simplifier la comparaison ; codé sur p bits et biaisé pour assurer d’être positif (ajout de 2 p-1 -1 ) M : Mantisse normalisée: la virgule est placée après le bit à 1 ayant le poids fort; elle est codée sur q bits Exemple : 11,01 = 1,101 x [-(2 p-1 -1), +(2 p-1 -1)]
Le standard IEEE 754 (1985) Simple précision (32bits) SMEbM 1 bit 23 bits 8 bits Exemple1: (35,5) 10 =( ? ) IEEE 754 simple précision (35,5) 10 =(100011,1) 2(virgule fixe) =(1,000111x2 5 ) (virgule flottante) Eb=E+2 p-1 -1= =5+127=132=( ) 2 1,M=1, M= SM=0 ; c’est un nombre positif 45
Exemple2: (+7) 10 =(?) IEEE754 simple précision (+7) 10 =(+111) 2 =1,11x2 2 Donc: SM=0 (signe positif) M= E=2 Eb=2+127=129=( ) 2 (+7) 10 =( ) IEEE754SP Exemple 3: (-2,25) 10 =(?) IEEE754 simple précision (-2,25) 10 =(-10,01) 2 =-1,001x2 1 Donc: SM=1 (signe négatif) M= E=1 Eb=1+127=128=( ) 2 (-2,25) 10 =( ) IEEE754SP 46
Le standard IEEE 754 (1985) Double précision (64bits) SMEbM 1 bit 52 bits 11 bits Exemple: (35,5) 10 =( ? ) IEEE 754 double précision (35,5) 10 =(100011,1) 2(virgule fixe) =(1,000111x2 5 ) (virgule flottante) Eb=E+2 p-1 -1= =5+1023=1028=( ) 2 1,M=1, M= ~0 SM=0 ; c’est un nombre positif 47
Addition en IEEE 754 Elle se fait en trois étapes : 1)Dénormaliser les deux nombres afin d’avoir le même exposant (le plus élevé) 2)Additionner les mantisses 3)Normaliser le résultat 48
Exemple: A=( ) IEEE754SP B=( ) IEEE754SP 1)Dénormalisation Dénormalisation de A : SM=0 signe + Eb=( ) 2 =129 E=Eb-( )= =2 M=11 Donc A=+1,11x2 2 Dénormalisation de B : SM=0 signe + Eb=( ) 2 =128 E=Eb-( )= =1 M=001 Donc B=+1,001x2 1 =+0,1001x2 2 49
2) Addition des mantisses 1,11 0, ,0101 Donc A+B=10,0101x2 2 3) Normalisation A+B=10,0101x2 2 =1,00101x2 3 E=3 Eb=127+3=130=( ) 2 et M=00101 Donc: A+B= ( ) IEEE754 50
Multiplication en IEEE 754 Elle se fait en quatre étapes : 1)Dénormaliser les deux nombres (exposants naturels) 2)Additionner les éxposants naturels 3)Multiplier les mantisses 4)Normaliser le résultat 51
Exemple : ( ) IEEE754 ( ) IEEE754 ( ) IEEE754 =1,11*2 2 ( ) IEEE754 =1,0011* Eb=129 E=Eb-127=2 Dénormalisation Eb=130E=Eb-127=3 - Addition des exposants : E=2+3=5 -Multiplication des mantisses : 1,11x1,0011=10, Résultat= 10,000101x2 5 52
- Normalisation Résultat= 10,000101x2 5 =1, *2 6 SM=0 ; E=6 Eb=6+127=133=( ) 2 ; M= Donc les résultat est : ( ) IEEE754 53