Nothing Special   »   [go: up one dir, main page]

Representation Des Donnees Dans La Machine

Télécharger au format ppt, pdf ou txt
Télécharger au format ppt, pdf ou txt
Vous êtes sur la page 1sur 30

Représentation de l’information dans la

machine
• Représentation des nombres négatifs
– Signe / valeur absolue
– Complément à 1
– Complément à 2
• Représentation des nombres réels
– Virgule fixe
– Virgule flottante
Information

Instructions Données

Caractère Numérique

Entiers

Non signés

Signés

Réels
1. Représentation des nombres entiers
• Il existe deux types d’entiers :
– les entiers non signés ( positifs )
– et les entiers signés ( positifs ou négatifs )

Problème : Comment indiquer à la machine qu’un nombre

est négatif ou positif ?


• Il existe 3 méthodes pour représenter les nombres
négatifs :
– Signe/ valeur absolue
– Complément à 1( complément restreint )
– Complément à 2 ( complément à vrai )
1.1 Représentation signe / valeur absolue ( S/VA )

• Si on travail sur n bits , alors le bit du poids fort est utilisé pour
indiquer le signe :
 1 : signe négatif
 0 : signe positif
• Les autres bits ( n -1 ) désignent la valeur absolue du nombre.

• Exemple : Si on travail sur 4 bits.

1 001 0 001

Signe Valeur absolue Signe Valeur absolue

1001 est la représentation de - 1 0001 est la représentation de + 1


Sur 3 bits on obtient :
signe VA valeur
• Les valeurs sont comprises
0 00 +0
entre -3 et +3
0 01 +1
0 10 +2
-3 ≤ N ≤ +3
0 11 +3
- ( 4-1 ) ≤ N ≤ + (4 -1 )
-(22 -1) ≤ N ≤ +(22-1 )
1 00 -0 -(2 (3 -1) -1) ≤ N ≤ +(2 (3 -1) -1 )
1 01 -1
1 10 -2
1 11 -3

Si on travail sur n bits , l’intervalle des valeurs qu’on


peut représenter en S/VA :
-(2 (n -1) -1) ≤ N ≤ +(2 (n -1) -1 )
Avantages et inconvénients de la représentation
signe/valeur absolue

• C’est une représentation assez simple .


• On remarque que le zéro possède deux représentations +0 et -0 ce
qui conduit à des difficultés au niveau des opérations arithmétiques.
• Pour les opérations arithmétiques il nous faut deux circuits : l’un
pour l’addition et le deuxième pour la soustraction .
L’idéal est d’utiliser un seul circuit pour faire les deux opérations,
puisque a- b =a + ( - b )
1.2 Représentation en complément à un
( complément restreint )

• On appel complément à un d’un nombre N un autre nombre


N’ tel que :
N+N’=2n-1
n : est le nombre de bits de la représentation du nombre N .

Exemple :
Soit N=1010 sur 4 bits donc son complément à un de N :
N’= (24 - 1)-N
N’=(16-1 )-(1010)2= (15 ) - (1010)2 = (1111)2 – (1010)2 = 0101

1 0 1 0
+
0 1 0 1
1 1 1 1
Remarque 1 :

• Pour trouver le complément à un d’un nombre, il suffit


d’inverser tous les bits de ce nombre : si le bit est un 0
mettre à sa place un 1 et si c’est un 1 mettre à sa place
un 0 .
• Exemple :

Sur 4 Bits Sur 5 Bits

1 0 1 0 0 1 0 1 0

0 1 0 1 1 0 1 0 1
Remarque 2

• Dans cette représentation , le bit du poids fort nous indique le signe


( 0 : positif , 1 : négatif ).
• Le complément à un du complément à un d’un nombre est égale au
nombre lui même .
CA1(CA1(N))= N
• Exemple :
Quelle est la valeur décimale représentée par la valeur 101010 en
complément à 1 sur 6 bits ?
• Le bit poids fort indique qu'il s'agit d'un nombre négatif.
• Valeur = - CA1(101010)
= - (010101)2= - ( 21)10
La notation du complément à « 1 »

0000 +0 1000 -7
1001 -6 1 1
0001 +1
1010 -5 5 0101
0010 +2
1011 -4 -2 + 1101
0011 +3
1100 -3 3 1 0010
0100 +4
0101 +5 1101 -2
1
0110 +6 1110 -1
1111 -0 0011
0111 +7
Si on travail sur 3 bits :

Valeur en Valeur en Valeur


CA1 binaire décimal
000 000 +0
001 001 +1
010 010 +2
011 011 +3
100 - 011 -3
101 - 010 -2
110 - 001 -1
111 - 000 -0

•Dans cette représentation , le bit du poids fort nous indique le signe .

•On remarque que dans cette représentation le zéro possède aussi une
double représentation ( +0 et – 0 ) .
1.3 Complément à 2 ( complément à vrai )

•Si on prend deux nombres entiers a et b sur n bits , on


remarque que la soustraction peut être ramener à une
addition : a – b = a + (-b)
• Pour cela il suffit de trouver une valeur équivalente à -b ?
La valeur CA1(b)+1 s’appelle le complément à deux de b :

- b = CA1(b)+1 = CA2(b)

Et enfin on va obtenir : a - b = a+ CA2(b)  transformer


la soustraction en une addition .
Exemple 1 : représentation du nombre b=-23 sur 8 bits ?

VA( b ) : 00010111
CA1(b) : 11101000
CA2(b) : 11101001

Exemple 2 : représentation du nombre b=-100 sur 8 bits ?

VA(b) : 01100100
CA1(b) : 10011011
CA2(b) : 10011100
Exemple

• Trouver le complément à 2 de : 01000101 sur 8 bits ?

CA2(01000101)= CA1(01000101)+ 1
CA1(01000101)= (10111010)
CA2(01000101)=(10111010)+ 1 = (10111011)

• Remarque 1 :
Pour trouver le compétemment à 2 d’un nombre :
il faut parcourir les bits de ce nombre à partir du poids faible et garder
tous les bits avant le premier 1 et inverser les autres bits qui viennent
après.
0 1 0 0 0 1 0 1 1 1 0 1 0 1 0 0

1 0 1 1 1 0 1 1 0 0 1 0 1 1 0 0
Remarque 2

• Dans cette représentation , le bit du poids fort nous indique le signe


( 0 : positif , 1 : négatif ).
• Le complément à deux du complément à deux d’un nombre est
égale au nombre lui même .
CA2(CA2(N))= N
• Exemple :
Quelle est la valeur décimale représentée par la valeur 101010 en
complément à deux sur 6 bits ?
• Le bit poids fort indique qu'il s'agit d'un nombre négatif.
• Valeur = - CA2(101010)
= - (010101 + 1)
= - (010110)2= - ( 22)
Si on travail sur 3 bits :

Valeur en Valeur en valeur


CA2 binaire
000 000 +0
001 001 +1
010 010 +2
011 011 +3
100 - 100 -4
101 - 011 -3
110 - 010 -2
111 - 001 -1

•Dans cette représentation , le bit du poids fort nous indique le signe .


•On remarque que le zéro n’a pas une double représentation.
•Sur 3 bits on remarque que les valeurs sont comprises entre -4 et +3

-4 ≤ N ≤ +3
- 4 ≤ N ≤ + (4 -1 )
- 22 ≤ N ≤ +(22-1 )
-2 (3 -1) ≤ N ≤ (2 (3 -1) -1 )

Si on travail sur n bits , l’intervalle des valeurs qu’on peut


représenter en CA2 :
-(2 (n -1)) ≤ N ≤ +(2 (n -1) -1 )

La représentation en complément à deux ( complément à vrai )


est la représentation la plus utilisée pour la représentation des
nombres négatifs dans la machine.
Opérations arithmétiques en CA2
Effectuer les opérations suivantes sur 5 Bits , en utilisant la représentation en CA2

0 1 0 0 1
0 1 0 0 1 +
+ +9
+9 1 1 1 0 0
0 0 1 0 0 -4
+4
+5
+ 13 1 0 0 1 0 1
0 1 1 0 1

Le résultat est positif Report

(01101)2= ( 13)10
Le résultat est positif
(00101)2= ( 5)10
1 0 1 1 1 1 0 1 1 1
-9 + -9 +
1 1 1 0 0 0 1 0 0 1
-4 +9
- 13 +0
1 1 0 0 1 1 1 0 0 0 0 0

Report Report

Le résultat est négatif :


Résultat = - CA2 (10011)= -( 01101) Le résultat est positif

= - 13 (00000)2= ( 0)10
La retenue et le débordement
• On dit qu’il y a une retenue si une opération arithmétique
génère un report .
• On dit qu’il y a un débordement (Over Flow ) ou
dépassement de capacité: si le résultat de l’opération sur
n bits et faux .
– Le nombre de bits utilisés est insuffisant pour contenir le résultat
– Autrement dit le résultat dépasse l’intervalle des valeurs sur les
n bits utilisés.
Cas de débordement

0 1 1 0
0 1 0 0 1 1 0 1 1 1
+9 + +
-9
0 1 0 0 0 1 1 0 0 0
+8 -8
+ 17 1 0 0 0 1 - 17
0 1 0 1 1

Négatif
Positif

•Nous avons un débordement si la somme de deux nombres positifs


donne un nombre négatif .
•Ou la somme de deux nombres négatifs donne un Nombre positif
•Il y a jamais un débordement si les deux nombres sont de signes
différents.
2. La représentation des nombres réels
• Un nombre réel est constitué de deux parties : la partie
entière et la partie fractionnelle ( les deux parties sont
séparées par une virgule )
• Problème : comment indiquer à la machine la position de
la virgule ?
• Il existe deux méthodes pour représenter les nombre
réel :
– Virgule fixe : la position de la virgule est fixe
– Virgule flottante : la position de la virgule change
( dynamique )
2.1 La virgule fixe
• Dans cette représentation la partie entière est représentée sur
n bits et la partie fractionnelle sur p bits , en plus un bit est
utilisé pour le signe.
• Exemple : si n=3 et p=2 on va avoir les valeurs suivantes

Signe P.E P.F valeur


0 000 00 + 0,0 Dans cette représentation les
0 000 01 + 0,25 valeurs sont limitées et nous
0 000 10 + 0,5 n’avons pas une grande précision
0 000 11 + 0,75
0 001 .00 + 1,0
. . . .
. . . .
2.2 Représentation en virgule flottante
• Chaque nombre réel peut s’écrire de la façon suivante :
N= ± M * b e
– M : mantisse ,
– b : la base ,
– e : l’exposant

• Exemple :
15,6 = 0,156 * 10+2
- ( 110,101)2 = - (0,110101)2 * 2+3
(0,00101)2= ( 0,101)2 * 2-2

Remarque :
on dit que la mantisse est normalisée si le premier chiffre
après la virgule est différent de 0 et le premier chiffre avant
la virgule est égale à 0.
• Dans cette représentation sur n bits :
– La mantisse est sous la forme signe/valeur absolue
• 1 bit pour le signe
• et k bits pour la valeur.
– L’exposant ( positif ou négatif ) est représenté sur p bits .

Signe mantisse Exposant Mantisse normalisée

1 bit p bits k bits

•Pour la représentation de l’exposant on utilise :


• Le complément à deux
Représentation de l’exposant en complément à deux

• On veut représenter les nombres (0,000001101)2 en virgule flottante


sur une machine ayant le format suivant :

Signe mantisse Exposant en CA2 Mantisse normalisée

1 bit 4 bits 8 bits

(0,000001101)2= 0,1101 * 2-5

Signe mantisse : positif ( 0)


Mantisse normalisé : 0,1101
Exposant = -5  utiliser le complément à deux pour représenter le -5
Sur 4 bits CA2(0101)=1011

0 1 0 1 1 1 1 0 1 0 0 0 0
1 bit 4 bits 8 bits
3. Le codage BCD (Binary Coded Decimal )

• Pour passer du décimal au binaire , il faut Décimal Binaire


effectuer des divisions successives. Il 0 0000
existe une autre méthode simplifiée pour 1 0001
le passage du décimal au binaire.
2 0010
3 0011
• Le principe consiste à faire des
4 0100
éclatement sur 4 bits et de remplacer
chaque chiffre décimal par sa valeur 5 0101
binaire correspondante . 6 0110
7 0111
• Les combinaisons supérieures à 9 sont 8 1000
interdites 9 1001
Exemple

1 2 9 5 6 2

0001 0010 1001 0101 0110 0010

129 = ( 0001 0010 1001)2 562 = (0101 0110 0010)2


4. Codage des caractères
• Les caractères englobent : les lettres alphabétiques ( A, a, B , B,.. ) ,
les chiffres , et les autres symboles ( > , ; / : …. ) .
• Le codage le plus utilisé est le ASCII (American Standard Code for
Information Interchange)
• Dans ce codage chaque caractère est représenté sur 8 bits .
• Avec 8 bits on peut avoir 28 = 256 combinaisons
• Chaque combinaison représente un caractère
– Exemple :
• Le code 65 (01000001)2correspond au caractère A
• Le code 97 (01100001) correspond au caractère a
• Le code 58 (00111010 )correspond au caractère :
• Actuellement il existe un autre code sur 16 bits , se code s’appel
UNICODE .

Vous aimerez peut-être aussi