0% ont trouvé ce document utile (0 vote)
81 vues4 pages

Ca1 Et Ca2

Le document présente trois méthodes classiques pour coder les entiers négatifs : la méthode du signe-module, la méthode du complément à 1 et la méthode du complément à 2. Chaque méthode a ses avantages et inconvénients, notamment en ce qui concerne la représentation du zéro et la facilité des opérations arithmétiques. Le complément à 2 est souvent préféré en raison de sa simplicité pour les opérations et de l'absence d'ambiguïté dans la représentation des nombres.

Transféré par

Abdelwahab Ghasmi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
81 vues4 pages

Ca1 Et Ca2

Le document présente trois méthodes classiques pour coder les entiers négatifs : la méthode du signe-module, la méthode du complément à 1 et la méthode du complément à 2. Chaque méthode a ses avantages et inconvénients, notamment en ce qui concerne la représentation du zéro et la facilité des opérations arithmétiques. Le complément à 2 est souvent préféré en raison de sa simplicité pour les opérations et de l'absence d'ambiguïté dans la représentation des nombres.

Transféré par

Abdelwahab Ghasmi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

06/10/2018

Codage des nombres négatifs

• Trois méthodes classiques pour coder les


entiers négatifs (signe moins) :
– Méthode du signe-module (Sign-
Magnitude Method)
Codage des nombres négatifs – Méthode du complément à 1 (One’s-
Complement Method)
– Méthode du complément à 2 (Two’s-
Complement Method)

Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK

Codage des nombres négatifs Codage des nombres négatifs

• Méthode du signe-module (valeur absolue)


Soustraire les modules
– Le bit du poids fort (MSB, Most Significant Opération Additionner les modules
A> B A< B A= B
Bit) est réservé pour le signe du nombre : 1 si
(+A) + (+B) + (A + B)
c’est le nombre est négatif, et 0 si c’est le
(+A) + (-B) + (A – B ) - (B – A ) + (A – B )
nombre est positif.
(-A) + (+B) - (A – B ) + (B – A ) + (A – B )
– Les (N-1) bits restants sont utilisés pour coder
(-A) + (-B) - ( A + B)
la valeur absolue du nombre (en binaire pur).
(+A) - (+B) + (A – B ) - (B – A ) + (A – B )
– L’intervalle des entiers représentables avec (+A) - (-B) + (A + B)
cette méthode est alors : (-A) - (+B) - ( A + B)
[-2N-1 + 1, 2N-1 - 1] (-A) - (-B) - (A – B ) + (B – A ) + (A – B )

Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK

Codage des nombres négatifs Codage des nombres négatifs

• Inconvénients de la méthode signe-module


• Exemples
– Il y a deux représentations distinctes pour le
nombre zéro : – Sur N = 8 bits :
+0 = 0000…000 • X = 102  Rep(X) = 01100110
- 0 = 1000…000 • Y = -102  Rep(Y) = 11100110
- Les opérations arithmétiques ne sont pas faciles à • Z = 127  Rep(Z) = 01111111
effectuer : il faut tenir compte des signes et des • U = 128  U est non représentable
modules des opérandes.
• V = -127  Rep(V) = 11111111
- Il peut y avoir une erreur de débordement
(Overflow) lorsque les résultats ne sont pas dans
l’intervalle [-2N-1 + 1, 2N-1 - 1].
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK

1
06/10/2018

Codage des nombres négatifs Codage des nombres négatifs

• Exercice corrigé (en séance du cours) • Méthode du complément à 1 (ou complément


– Effectuer les opérations suivantes en utilisant le logique)
codage du signe-module sur 8 bits : – Cas d’un nombre positif : on le code comme dans
• 22 + 11 la méthode de la valeur absolue.
• (-22) + 11 – Cas d’un nombre négatif :
• 22 + (-11) • On code son nombre opposé (qui est positif).
• 22 + (-22) • On calcule le complément logique du code
obtenu (en transformant les 0 en 1, et vice-
• (-22) + (-11)
versa).
• 22 + 120 – Le bit du poids fort est toujours utilisé pour coder
• (-22) + (-106) le signe du nombre (0 : positif / 1 : négatif)
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK

Codage des nombres négatifs Codage des nombres négatifs

• Inconvénients • Exemples
– Il y a deux représentations distinctes pour le nombre – Sur N = 8 bits :
zéro :
• X = 102  Rep(X) = 01100110
+0 = 0000…000
- 0 = 1111…111 • Y = -102  Rep(Y) = CA1(01100110) =
– Il y aura une erreur de débordement (Overflow) 10011001
lorsque le résultat n’est pas dans l’intervalle [-2N-1 + • Z = 127  Rep(Z) = 01111111
1, 2N-1 - 1]. • U = 128  U est non représentable
• Avantages • V = -127  Rep(V) = CA1(0111111) =
– La soustraction peut être effectuée en utilisant 10000000
l’addition.

Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK

Codage des nombres négatifs Codage des nombres négatifs

• Exercice corrigé • Solution


– Donner la valeur décimale du nombre dont – Le bit du poids fort est = 1  X est négatif
le code sur N = 8 bits en utilisant la – La valeur absolue du nombre est obtenue
méthode du complément à 1 est : 11000100 en calculant le complément à 1 du code :
CA1(11000100) = 00111011
– |X| = 2 + 24 + 23 + 21 + 20
5

– |X| = 32 + 16 + 8 + 2 + 1
– |X| = 59
 X = -59
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK

2
06/10/2018

Codage des nombres négatifs Codage des nombres négatifs

• Méthode du complément à 2 (ou • Méthode du complément à 2 (ou


complément arithmétique) complément arithmétique)
– Un nombre positif est représenté en – Soit -A un nombre négatif à coder en
binaire pur, avec un 0 en bit de poids fort. complément à 2 (A étant positif) sur N bits
– Un nombre négatif est représenté avec une – On veut que -A = 1???...???
séquence de bits en respectant les deux – A = 0§§§…§§§
conditions suivantes : – On veut que : -A + A = 0
• La somme du nombre et de son opposé – L’idée est de représenter -A comme étant la
est égale à 0. valeur binaire de -A + 2N
• Le bit de poids fort est égal à 1.
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK

Codage des nombres négatifs Codage des nombres négatifs

• Méthode du complément à 2 (ou complément • Exemple


arithmétique)
– Pour coder X = -12 en complément à 2 sur
– Par suite : -A + A + 2N = 0 + 2N = 2N 8 bits en utilisant la méthode du
– Le nombre 2N se représente sur N+1 bits complément à 2, on suit les étapes
comme 1000…000 (1, suivi de N zéros). suivantes :
– Si l’on ignore le bit de poids fort 1, on – (-12) ∈ [-27, 27-1] = [-128, 127]
s’aperçoit qu’effectivement : -A + A = 0. – (-12) + 28 = 256 - 12 = 244
– C’est la méthode du complément à 2. – 244 = (11110100)2
– Avec Cette méthode, on peut coder sans erreur – (-12) = (11110100)CA2
tous les entiers de l’intervalle [-2N-1, 2N-1-1]
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK

Codage des nombres négatifs Codage des nombres négatifs

• Algorithme (1) de codage d’un nombre négatif • Exemple


(-A) en complément à 2 – Codons (-12) en complément à 2 sur 8 bits.
– Calculer la représentation binaire de A – Étape 1 :
– Calculer le complément à 1 de A : CA1(A) (12)10 = (00001100)2
– Ajouter +1 au résultat – Étape 2 :
CA1  (12)10 = (11110011)CA1
– Étape 3 :
CA2  1 + (11110011)CA1 = (11110100)CA2
-12 = (11110100)CA2

Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK

3
06/10/2018

Codage des nombres négatifs Codage des nombres négatifs

• Algorithme (1) de codage d’un nombre négatif • Exemple


–A en complément à 2 – Codons (-12) en complément à 2 sur 8 bits.
– Calculer la représentation binaire de A – Étape 1 :
– Copier tous les bits 0 à partir de la droite (12)10 = (00001100)2
jusqu’au premier bit égal à 1 (ce bit inclus). – Étape 2 :
– Complémenter les bits restants Copie des bits 0 et du 1er 1 à droite 
(00001100)2
– Étape 3 :
Complémentation des bits restants  (11110100)CA2
-12 = (11110100)CA2

Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK

Codage des nombres négatifs Codage des nombres négatifs

• Avantages de la méthode du complément à • Règles de calcul en complément à 2


2 – Calculer l’opposé d’un nombre X : -X =
– Il est facile de tester si un nombre est CA2(X).
négatif : sa représentation binaire – A + B : s’effectue comme en binaire.
commence par un 1. – A - B : on calcule A + CA2(B)
– Les opérations arithmétiques sont très – Il y débordement (Overflow) seulement
simples à effectuer en complément à 2. dans le cas où si deux nombres de même
signe qui sont additionnés donne un résultat
de signe différent.

Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK

Codage des nombres négatifs Codage des nombres négatifs

• Exemples (sur 4 bits) • Exemples (sur 4 bits)


– (-5)  (5)10 = (0101)2 = (1011)CA2 – (-7)10 + (-6)10 = (1001)CA2 + (1010)CA2 =
– (5)10 + (2)10 = (0101)CA2 + (0010)CA2 = (10011)CA2  Overflow
(0111)CA2 = (7)10 – (-5)10 - (2)10 = (1011)CA2 - (0010)CA2 =
– (5)10 + (3)10 = (0101)CA2 + (0011)CA2 = (1011)CA2 + (1110)CA2 = (11001)CA2  On
(1000)CA2  Overflow ignore le bit 1  (-5)10 - (2)10 = (1001)CA2
– (5)10 - (2)10 = (0101)CA2 - (0010)CA2 = = (-7)10
(0101)CA2 + (1110)CA2 = (10011)CA2  On – (-6)10 - (4)10 = (1010)CA2 + (11000)CA2 =
ignore le bit 1  (5)10 - (2)10 = (0011)CA2 = (10110)CA2  Overflow
= (3)10
Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK Architecture des ordinateurs & Algorithmique Pr. DARGHAM Abdelmajid ENSAK

Vous aimerez peut-être aussi