Telechargé par Aliou Seck

3.Entiers (1)

publicité
Représentation des
nombres entiers
Eduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
Représentation des nombres entiers signés
Représentation signe-magnitude:
Le bit de poids fort indique le signe (0 si positif) et les bits restants la
valeur du nombre.
Avec n bits on peut représenter des entiers entre:
-(2n-1-1) et +(2n-1-1)
Deux représentations sont possibles pour zéro
Exemple avec n=4:
5 = 0101
-5 = 1101
0 = 0000 = 1000
Page 2
Eduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
signe
magnitude
Exemples d'opérations arithmétiques (avec n=4):
5
+3
8
0101
0011
1000
résultat faux (0):
dépassement de capacité
la soustraction devrait pouvoir être traitée comme une addition:
5 - 3 = 5 + (-3)
5
-3
2
Page 3
0101
1011
0000
résultat faux (0)
Eduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
Représentation complément à deux:
Le complément à deux d’un nombre est égal à l'inverse du
nombre plus 1. Par exemple, le complément à deux de 0101 est
(1010+1)=1011
Dans ce système, un nombre négatif est le complément à deux
du même nombre positif. Le bit de poids fort d'un nombre
négatif est égal à 1
Avec n bits on peut représenter des entiers entre:
-(2n-1) et +(2n-1-1)
x n1 x n2 ... x 0 = x n1 2
n1
n2
+ xi 2
i= 0
Une seule représentation est possible pour zéro
Page 4
Eduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
i
2n
2n-1
+2n-1
complément
à2
non signé
0
0
-2n-1
Eduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
Page 5
Exemple avec n=4:
5 = 0101
3 = 0011
8 = impossible
-5 = 1011
-3 = 1101
-8 = 1000
signe
0 = 0000
Si n=4:
signe-magnitude
-8 -7
0
7
8
-8 -7
0
7
8
complément à 2
Page 6
Eduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
non signé
signemagnitude
complément à 2
0000
0
0
0
0001
1
1
1
0010
2
2
2
0011
3
3
3
0100
4
4
4
0101
5
5
5
0110
6
6
6
0111
7
7
7
1000
8
0
-8
1001
9
-1
-7
1010
10
-2
-6
1011
11
-3
-5
1100
12
-4
-4
1101
13
-5
-3
1110
14
-6
-2
1111
15
-7
-1
Eduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
Page 7
Exemples d'opérations arithmétiques (avec n=4):
5
+3
8
0101
0011
1000
résultat faux (-8):
dépassement de capacité
la soustraction peut être traitée comme une addition:
5 - 3 = 5 + (-3)
5
-3
2
Page 8
0101
1101
0010
résultat correct
Eduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
Les opérations d'addition et de soustraction sont simplifiées en
complément à deux:
A-B
A+B
B = B+1
Z = A+B
Eduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
Page 9
Traitement du dépassement de capacité pour une addition:
• si les deux opérandes sont du même signe:
dépassement si le résultat est du signe opposé
• si les deux opérandes sont de signe opposé:
il n'y a jamais de dépassement de capacité
Plus formellement, pour des nombres n bits, signés en
complément à 2:
overflow = cn cn-1
Exemple:
5
+3
8
Page 10
0111 carry
0101
+0011
1000
ov = cn cn-1= 0 1 = 1
Eduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
Si nous avons deux entiers signés, x et y, en format complément à
2 sur n bits, leur addition présente 3 cas:
• si x+y 2n-1, il y a un dépassement de capacité positif
• si -2n-1 x+y < 2n-1, le résultat est correct
• si x+y < -2n-1, il y a un dépassement de capacité négatif
Pour n=4, les résultats possibles de l'addition de deux nombres
signés sont illustrés par la figure suivante
Eduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
Page 11
résultat
correct
dépassement
négatif
dépassement
positif
8
6
4
2
0
6
-2
4
2
-4
0
-6
-2
-8
-4
-8
Page 12
-6
-4
-2
-6
0
2
4
-8
6
Eduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
Extension de signe:
Si l'on veut passer un entier signé x d'un format n bits vers un
format n+k bits, en gardant la même valeur, il suffit de faire une
extension de signe: le bit de signe est répété sur les nouveaux k
bits de poids fort
n
…
…
Page 13
…
…
…
k
n
Eduardo Sanchez
Ecole Polytechnique Fédérale de Lausanne
Téléchargement