• Aucun résultat trouvé

Représentation des nombres entiers signés

N/A
N/A
Protected

Academic year: 2022

Partager "Représentation des nombres entiers signés"

Copied!
13
0
0

Texte intégral

(1)

Eduardo Sanchez

Ecole Polytechnique Fédérale de Lausanne

Représentation des nombres entiers

(2)

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

signe

magnitude

(3)

♦ Exemples d'opérations arithmétiques (avec n=4):

5 0101 +3 0011 8 1000

résultat faux (0):

dépassement de capacité

5 0101 -3 1011 2 0000

résultat faux (0)

la soustraction devrait pouvoir être traitée comme une addition:

5 - 3 = 5 + (-3)

(4)

♦ 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)

♦ Une seule représentation est possible pour zéro

x

n−1

x

n2...

x

0 =

x

n−1

2

n−1+

x

i

i=0 n−2

2

i

(5)

complément

à 2 0

+2n-1

-2n-1

non signé 2n-1

2n

0

(6)

♦ Exemple avec n=4:

♦ Si n=4:

5 = 0101 -5 = 1011 3 = 0011 -3 = 1101 8 = impossible -8 = 1000

0 = 0000

signe

-8 -7 0 7 8

signe-magnitude

-8 -7 0 7 8

complément à 2

(7)

-1 -7

15 1111

-2 -6

14 1110

-3 -5

13 1101

-4 -4

12 1100

-5 -3

11 1011

-6 -2

10 1010

-7 -1

9 1001

-8 0

8 1000

7 7

7 0111

6 6

6 0110

5 5

5 0101

4 4

4 0100

3 3

3 0011

2 2

2 0010

1 1

1 0001

0 0

0 0000

complément à 2 signe-

magnitude non signé

(8)

♦ Exemples d'opérations arithmétiques (avec n=4):

5 0101 +3 0011 8 1000

résultat faux (-8):

dépassement de capacité

5 0101 -3 1101 2 0010

résultat correct

la soustraction peut être traitée comme une addition:

5 - 3 = 5 + (-3)

(9)

♦ 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

(10)

♦ 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:

0111 5 0101 +3 +0011 8 1000

carry

ov = cn cn-1= 0 ⊕ 1 = 1

(11)

♦ 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

(12)

-8 -6

-4 -2 -6

-4 -2

0 2

4 6

-8 -6 -4 -2 0 2 4 6 8

dépassement positif

dépassement négatif

résultat correct

(13)

♦ 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

n k

Références

Documents relatifs

Ecrire un programme dans lequel l’utilisateur rentrera la valeur binaire (variable theta ) fournie par le capteur, et qui lui fournira la valeur angulaire correspondante. 2 Précision

1. Faire les calculs suivants et donner le résultat des opérations binaires sans passer par la base 10. a) Pour les très très rapides : créer un programme Python qui fait la somme

• la fonction comp32b(mot) qui prend en argument une chaîne de caractères (correspondant à un nombre en binaire) et qui rajoute autant de ‘0’ qu’il faut

[r]

e) En utilisant la fonction de conversion des entiers positifs de la base 10 vers la base 2 de la feuille d’exercices du chapitre 1 (exercice 7 ; vous pourrez la

Trouver la représentation décimale des entiers relatifs dont les représentations binaires sur huit bits sont 01010101 et 10101010... Une addition de deux nombres positifs ou

batterie américaine de missiles Patriot, à Dharan (Arabie Saoudite), a échoué dans l'interception d'un missile.

[r]