Académique Documents
Professionnel Documents
Culture Documents
Chap 7
Chap 7
Chapitre 7
La plupart des calculateurs actuels utilisent la base 2 pour reprsenter les nombres. Les oprations entre
nombres sont donc bases sur l'arithmtique binaire. Bien que le but de ce cours ne soit pas de dtailler le
traitement arithmtique dans les calculateurs, il est intressant d'en prciser les bases lmentaires.
Dans la premire partie de ce chapitre, nous rappellerons les notions lmentaires de codage et de
reprsentation des nombres. Nous dfinirons ensuite les principes lmentaires de l'arithmtique binaire. Le
principe des oprations de base (addition, soustraction, multiplication, division) sera prsent.
7.1. Reprsentation des nombres
Un code constitue une correspondance entre des symboles et des objets dsigner. Les codes utiliss pour
reprsenter des nombres sont des codes pondrs : dans une base de travail donne, la valeur dun rang donn
est un multiple par la base de celle du rang infrieur.
7.1.1. Reprsentation des entiers naturels
De manire gnrale, un nombre entier naturel N exprim dans une base b est un ensemble ordonn de n
chiffres chacun deux prenant une valeur comprise entre 0 et b-1.
Nb = an-1 an-2 . a1 a0
Les nombres exprims dans la base 10 sont appels nombres dcimaux. Les nombres exprims dans la base 2
sont appels nombres binaires. Pour les calculateurs lectroniques ces nombres ont un intrt tous particulier du
fait qu'ils ne font intervenir que deux valeurs (0,1).
La valeur dun nombre exprim dans une base b est la somme pondre de ces n chiffres, les poids de chacun
deux tant des puissances de la base de numration. Cette valeur est comprise entre 0 est bn-1.
n-1
n-2
=>
n-1 i
N = ai b
i=0
Cb-1(N) = bn - 1 - N
Exemple :
C9(5230)10 = 104 - 1 - (5230)10 = (4769)10
C1(1100)2 = 24 - 1 - (1100)2 = (16 - 1 - 12)10 = (3)10 = (0011)2
Nous pouvons constater que le complment b-1 de N peut s'obtenir en complmentant b-1 tous les
chiffres. Dans le cas de la base 2 cela se traduit par une simple inversion de tous les bits.
Exemple : Interprtation de nombres binaires en reprsentation Signe et Valeur absolue (n=3)
22 21 20 N
0 0 0
0
0 0 1
1
0 1 0
2
0 1 1
3
1 0 0 -3
1 0 1 -2
1 1 0 -1
1 1 1 -0
Remarque : Un des problmes induits par cette reprsentation rside dans la double reprsentation du 0.
7.1.2.b.2. Complment b
Le complment b dun nombre N exprim sur n chiffres (bits), est obtenu en soustrayant le nombre N du
radical R.
Cb(N) = bn - N
Exemple :
C10(5230)10 = 104 - (5230)10 = (4770)10
Cn(1100)2 = 24 - (1100)2 = (16 12)10 = (4)10 = (0100)2
Nous pouvons constater que le complment b de N peut sobtenir partir du complment b-1 : Cb(N) =
Cb-1(N)+1 mais galement par la procdure de scrutation / complmentation suivante :
-
Conserver le premier 1
n-1
(N)10 = -[(an-1)/(b-1)]b
n-2
i
+ ai b
i=0
(N)10 = -an-12
n-2
i
+ ai 2
i=0
N
0
1
2
3
-4
-3
-2
-1
Remarque : Outre son intrt pour dans le cadre des oprations daddition/soustraction, le codage en
complment b permet dviter la double reprsentation du 0 ce qui nest pas le cas en codage complment b1.
7.1.3. Reprsentation des nombres rationnels
7.1.3.a. Reprsentation en virgule fixe
Les reprsentations prcdentes peuvent stendre aux nombres rationnels. Pour ces nombres, la partie
fractionnaire est spare de la partie entire, par une virgule ou un point. Ce type de codage des nombre
rationnels est appel reprsentation en virgule fixe.
(N)b = an-1 . a0 , a-1 .a-m
La valeur dcimale dun tel nombre est :
n-1
-1
-m
n-1
i
=> (N)10 = aib
i=-m
La reprsentation en virgule flottante a t normalise (norme IEEE 754) afin que les programmes aient un
comportement identique d'une machine l'autre. La norme IEEE754 dfini la faon de coder en virgule flottante
un nombre binaire sur 32 bits ou 64 bits (double prcision) en dfinissant 3 composantes :
-
le signe S est reprsent par un seul bit : le bit de poids fort (le plus gauche)
lexposant E est cod sur les 8 bits conscutifs au signe en excs de 127 (simple prcision) ou 1023
(double prcision)
la mantisse M (bits situs aprs la virgule) est reprsente sur les 23 (simple prcision) ou 55 (double
prcision) bits restants.
Dans cette reprsentation la valeur dun nombre sur 32 bit est donn par lexpression :
N = (-1)s * 1,M * 2(E-127)
N = (-1)s * (1 + M*2-23) * 2(E-127)
Exemple : Soit coder la valeur 525,5.
525,5 s'crit en base 2 de la faon suivante: 1000001101,1
on veut l'crire sous la forme 1.0000011011 x 29. Par consquent:
-
le bit s vaut 1
Max
Valeur reprsente
Max 0
0
0
Nombre dnormalis
Exprimer le nombre (N)b1 en polynme avec dans le polynme des nombres exprims dans la base b2,
A titre d'exemple considrons le nombre binaire (1011,101). L'expression polynomiale est la suivante:
A = 1*23 + 0*22 + 1*21 + 1*20 + 1*2-1 + 0*2-2 + 1*2-3
(A)10 = 1*8 + 0*4 + 1*2 + 1*1 + 1*1/2 + 0*1/4 + 1*1/8
= 11 + 5/8
= 11,625
(A)8 = 1*10 + 0*4 + 1*2 + 1*1 + 1*1/2 + 0*1/4 + 1*1/10
= 13 + 5/10
= 13,5
(A)3 = 1*22 + 0*11 + 1*2 + 1*1 + 1*1/2 + 0*1/11 + 1*1/22
= 102 + 12/22
= 102,121212 ...
Ce type de conversion est en fait trs utilis pour passer d'une base quelconque une expression dcimale.
Dans la pratique un changement de base entre deux bases quelconques se fait gnralement par l'intermdiaire
de l'expression dcimale:
base b1 => expression dcimale (base 10) => base b2
Nous avons vu que le passage d'une base quelconque la base dcimale par la mthode algorithmique est
simple l'inverse l'tant moins. Une solution pour raliser ce passage (base 10 base quelconque) est d'appliquer
une mthode itrative.
7.1.4.b. Mthode itrative :
Soit A la reprsentation d'un nombre entier positif dans la base 10 Pour obtenir sa reprsentation dans la base
b quelconque il suffit de diviser A par b, puis le quotient par b, jusqu' ce que le quotient devienne nul. Les
restes successifs lu de bas en haut sont la reprsentation de A dans la base b.
A = a3b3 + a2b2 + a1b1 + a0
Le premier chiffre de la partie fractionnaire exprim en base b est la partie entire de (n1)10.
La valeur du second chiffre de la partie fractionnaire exprime en base b est obtenue en utilisant (n2)10
comme nous avons utilis (n1)10 pour calculer le premier chiffre.
bn
a1
Cn
C2
a0
b1
C1
b0
C0
(avec C0 = 1)
ai bi
ai
Ci+1
Ci+1
Ci
bi
Ci
(avec C0 = 0)
ai bi
ai
Ci+1
Ci+1
Ci
bi
>
Ci
B = b3 b2 b1 b0
A+B
S = r s3 s2 s1 s0
Figure 7.4. Additionneur binaire
s=ab
r = a.b
r
0
0
0
1
L'opration d'addition de deux reprsentation binaires s'effectue de faon similaire l'addition dcimale c'est
dire en additionnant digit par digit les deux reprsentations alignes sur la virgule et en reportant une
ventuelle retenue sur la colonne suivante.
Exemple :
Retenues -> 10011 11
1001,011
= ( 9,375)10
+ 1101,101
= (13,625)10
----------10111,000
----------
= (23,000)10
Pour raliser un additionneur, le module de base doit donc raliser l'addition sur 3 bits. L'addition tant une
opration associative, on peut aisment dduire la table d'addition binaire sur 3 bits de la table d'addition binaire
sur 2 bits.
Soit deux nombres A (A= an ... a0) et B (B= bn ... b0).
ai
0
0
0
0
1
1
1
1
bi
0
0
1
1
0
0
1
1
r
0
1
0
1
0
1
0
1
=>
=>
=>
=>
=>
=>
=>
=>
si
0
1
1
0
1
0
0
1
si = ai bi ri
ri+1 = ai.bi + ai.ri + bi.ri
ri+1
0
0
0
1
0
1
1
1
10
ai
bi ri
si
ri+1
bi
ri+1
ri+1
ri
ri
si
si
La structure permettant d'additionner deux nombres de n bits est obtenue en cascadant cette structure de base.
11
A = a 3 a2 a1 a0
B = b3 b2 b1 b0
A+B
S = r s3 s2 s1 s0
a3
b3
r4
a2
b2
r3
r2
s3
a1
b1
r1
s2
b0
a0
r0
s1
s0
7.3.2. Incrmenteur
La structure dun incrmenteur peut tre dtermine partir de celle de ladditionneur en considrant quun
des 2 mots est 0 et que la retenue entrante vaut 1.
a3
r4
a2
r3
s3
s3
a1
r2
s2
a3
r4
r1
s2
s1
1
+
s0
a0
a1
r2
a0
s1
a2
r3
r1
1
+
s0
si = (ai bi) ri
=>
si = ai ri
=>
ri+1 = ri.ai
12
ai
ri+1
ri
si
Figure 7.9. Cellule lmentaire de l'incrmenteur
soit l'tage i-1 a propag la retenue gnre l'tage i-2 (Pi-1=1 et Gi-2=1)
soit les tages i-1 et i-2 ont propag la retenue gnre l'tage i-3 (Pi-1=Pi-2=1 et Gi-3=1)
..........
soit tous les tages infrieurs ont propag la retenue entrante dans l'additionneur (Pi-1=Pi-2=...=P0=r0=1).
les retenues ri
13
b3 a3
b2 a2
b1 a1
b0 a0
G.P.
G.P.
G.P.
G.P.
P1 G1
P0 G0
P3 G3
P2 G2
r4
r0
C.L.U.
r3
r2
s3
r1
s2
s1
s0
La structure du bloc CLU peut tre dtermine partir des quation donnant les retenues ri.
7.4. Soustraction binaire
7.4.1. Structure du soustracteur binaire
Ce paragraphe prsente la structure de base permettant de raliser la soustraction entre deux nombre binaires
de n bits.
A = a3 a2 a1 a0
B = b3 b2 b1 b0
A-B
S = r s3 s2 s1 s0
Figure 7.11. Soustracteur binaire
0-0=0
0-1=1
1-0=1
1-1=0
0
1
0
0
s=ab
s = a . b
La procdure de soustraction de nombre binaire est semblable celle utilise en dcimal c'est dire :
le signe du rsultat est le signe du nombre le plus grand en valeur absolue.
le rsultat est obtenu en soustrayant le nombre le plus petit en valeur absolue du nombre le plus grand.
14
Exemple :
Retenues ->
111
101,0
- 011,1
-----001,1
011
1100
- 0011
---1001
( 5 )
(-3,5)
----( 1,5)
( 12)
(- 3)
---( 9)
Pour raliser un soustracteur, le module de base doit donc donc travailler sur 3 bits. Les relations donnant la
somme et la retenue sur trois bits sont les suivantes.
Soit deux nombres A (A= an ... a0) et B (B= bn ... b0) et soit raliser l'opration A-B.
ai
0
0
0
0
1
1
1
1
bi
0
0
1
1
0
0
1
1
ri
0
1
0
1
0
1
0
1
=>
=>
=>
=>
=>
=>
=>
=>
si
0
1
1
0
1
0
0
1
si = ai bi ri
ri+1 = ai.bi + ai.ri + bi.ri
ri+1
0
1
1
1
0
0
0
1
ai
bi ri
si
ri+1
bi
ri+1
ri+1
ri
si
si
Figure 7.13. Cellule soustracteur 2 fois 1 bit plus retenue
15
ri
si = (ai bi) ri
ri+1 = ri.(ai bi)+ ai.bi
ai bi
ai
bi
ri+1
ri+1
ri
ri
si
si
Comme pour l'additionneur, un soustracteur peut tre ralis en cascadant les cellules de base.
A = a3 a2 a1 a0
B = b3 b2 b1 b0
A-B
S = r s3 s2 s1 s0
r4
a3
b3
r3
a2
b2
s3
a3
r4
s3
r2
a2
r3
a1
r2
s2
b0
a0
r1
s1
b2
b1
s2
b3
a1
r0
s0
b1
s1
b0
a0
r1
r0
s0
16
a2
r3
r2
s3
a0
a1
r1
s2
s1
s0
Comme pour lincrmenteur, la cellule lmentaire de ladditionneur peut tre simplifie en considrant b =
0.
7.4.3. Additionneur / Soustracteur
La structure dun oprateur assurant soit laddition soit la soustraction de deux nombres A et B en fonction
dune commande Op peut tre conu partir des structures dadditionneurs et soustracteurs prcdemment
prsentes. La structure dun tel oprateur est reprsent sur la figure 7.17.
a2 b 2
a3 b 3
a1 b 1
a0 b 0
Op
Op = 0 => A + B
Op = 1 => A - B
r4
r3
s2
s3
r2
r1
s1
r0
s0
Remarque : Tout comme pour le soustracteur, la non-symtrie de cette cellule en mode soustraction impose
un dispositif amont de comparaison et d'orientation des entres.
Notons quune cellule assurant les oprations incrmentation / dcrmentation en fonction dune commande
C peut tre ralise le mme principe.
7.5. Addition algbrique
17
Un nombre entier relatif peut tre reprsent par un nombre binaire dont le bit de poids fort (an-1) indique le
signe (0 correspond un nombre positif, 1 un nombre ngatif) et les autres bits (an-2 .. a1a0) reprsentent la
partie significative du nombre. Si la partie significative du nombre est reprsente en valeur absolue, l'opration
de soustraction est relativement complexe. Elle ncessite effectivement la connaissance du plus grand des deux
nombres, la modification de ce nombre au cours de la soustraction, etc.... La structure ralisant lopration
daddition sur des nombres signs exprims en valeur absolue est reprsente sur la figure 7.18.
Sa|A|
Sb|B|
A B
A B
Comparateur
Signe
Additionneur / Soustracteur
|R|
Sr
Un moyen d'viter ce processus pour effectuer une soustraction est d'utiliser un codage en complment pour
reprsenter les nombres ngatifs. Il existe deux formes de complments: le complment 2 (complment b) et
le complment 1 (complment b-1). Avec de tels codages, toute opration de soustraction se transforme en
une opration d'addition entre nombre cods. La structure gnrale de l'additionneur algbrique est la suivante:
Sa|A|
Sb|B|
Codage
Codage
Additionneur
Dcodage
Sr|R|
Figure 7.19. Structure d'un additionneur algbrique
Le bit de retenue de l'addition doit tre ignor dans tous les cas. Le rsultat de l'addition est la valeur
attendue. Ce rsultat peut tre positif ou ngatif
18
2.
Si le bits de signe du rsultat vaut 0, le nombre obtenu est positif et cod en binaire naturel sur les bits
significatifs. Si le bits de signe du rsultat vaut 1, le nombre obtenu est ngatif et cod en complment
2.
Exemple :
14 = 01110
14
01110
-13 =-01101
+(-13) =
10011
----00001
13 =
01101
-14 = -01110
01101
+(-14) =
13
10010
----11111
Signe=0 =>R=(00001)2=(1)10
Remarque : Le rsultat de l'opration doit tre infrieure 2n, c'est dire qu'en valeur absolue sa
reprsentation binaire comporte n bits au plus. Les cas qui peuvent poser problmes sont ceux ou le signe des
deux oprandes de l'addition est identique. Dans ce cas, il peut y avoir dpassement de capacit et l'addition de
deux nombres positifs peut donner un rsultat ngatif.
01111
15 = 01111
- (-2)= + 00010
15 =
+ 2 = 00010
----10001
=> signe(M)=signe(N)=0
=> retenue = 0
=> Rsultat = M + N
19
a3 b 3
a1 b1
a0 b 0
Op
Op = 0 => A + B
Op = 1 => A - B
r4
r3
s2
s3
r2
s1
r1
s0
Le bit de retenue de l'addition doit tre ignor. Si ce bit vaut 0, le rsultat de l'addition est la valeur
attendue. Si ce bit vaut 1, le rsultat attendu est le rsultat de l'addition +1. Le rsultat final peut tre
positif ou ngatif.
2.
Si le bit de signe du rsultat final vaut 0, le nombre obtenu est positif et cod en binaire naturel sur les
bits significatifs. Si le bit de signe du rsultat final vaut 1, le nombre obtenu est ngatif et cod en
complment 1.
Exemple :
20
14 = 01110
14 = 01110
-13 =-01101
+(-13)= 10010
----100000
+
1
----Signe=0 => R=(00001)2=(1)10
00001
01101
13 = 01101
-14 = -01110
13 =
+(-14)= 10001
----011110
+
0
----11110
Remarque : Le rsultat de l'opration doit tre infrieure 2n, c'est dire qu'en valeur absolue sa
reprsentation binaire comporte n bits au plus. Les cas qui peuvent poser problmes sont ceux ou le signe des
deux oprandes de l'addition est identique.
01111
15 =
01111
- (-2)= + 00010
15 =
+ 2 =
00010
----10001
0
----10001
=> signe(M)=signe(N)=0
=> retenue = 0
=> Rsultat = M + N
21
S1 = M + (2n-1 - N) - 2n
=M-N1
S2 = S1 + 1
=MN
=> Rsultat: R = S2
Pour avoir le rsultat exact, il faut donc rajouter le bit de retenue au rsultat de l'addition.
Cas 3 : M<0 et N<0
=> signe(M)=signe(N)=1
=> retenue = 1
N et M sont reprsents par leur complment 1.
On effectue donc l'addition (2n-1-M) + (2n-1-N).
Le rsultat est suprieur 2n (bit de retenue 1). Si l'on ignore le bit de retenue (rsultat - 2n) on obtient :
S1 = (2n-1 - M) + (2n-1 - N) - 2n
= - M - N + 2n - 1 1
S2 = S1 + 1
= - M - N + 2n 1
C1(S2) = 2n-1 - (- M - N + 2n-1)
=M+N
=> Rsultat: R = -C1(S2)
7.6. Mutiplication binaire
7.6.1. Multiplication par une puissance de 2
Dcaler un nombre crit en base b de k positions vers la droite reviens multiplier ce nombre par b-k, et le
dcaler de k positions vers la gauche reviens le multiplier par bk.
Soit un nombre N crit en base b :
n
(pn pn-1 ... p1 p0 p-1 ... p-k , p-k-1 ... p-m)b = pibi+k
n
i=-m
i=-m
i+k
i=-m
Dcaler un nombre binaire de k positions (k positif pour un dcalage gauche et ngatif pour un dcalage
droite) reviens donc multiplier ce nombre par 2k.
Exemple :
(110,101)2 = (6,625)10
(1,10101)2 = 2-2*(6,625)10 = (6,625 / 4)10 = (1,65625)10
(11010,1)2 = 2+2*(6,625)10 = (6,625 * 4)10 = (26,5)10
22
Multiplicande
Multiplieur
-----11010
00000
11010
Produit partiel
Produit partiel
Produit partiel
------10000010
Cette opration de multiplication binaire se rsume donc une somme de produits partiels. Elle peut tre
ralise par une structure cable cascadant des additionneurs (Figure 7.21.).
A3
A2
A1
A0
B2
B1
B0
B3
-------------------------------A3B0 A2B0 A1B0 A0B0
A3B1 A2B1 A1B1 A0B1
A3B2 A2B2 A1B2 A0B2
A3B3 A2B3 A1B3 A0B3
--------------------------------------------------------------P7
P6
P5
P4
P3
P2
P1
P0
A = a3 a2 a1 a0
B = b3 b2 b1 b0
A*B
P = p7 p6 p5 p4 p3 p2 p1 p0
23
Multiplicande
Multiplieur
Produit partiel
Produit partiel
Produit partiel
Produit partiel
A3
A2
A1
A0
B0
0 A3
A2
A1
A0
B1
A3
A2
A1
A0
B2
A3
A2
A1
A0
B3
P7
P6
P5
P4
P3
0
P2
P1
P0
Remarque : Si les 2 oprandes A et B scrivent sur n bits le (A<2n et B<2n), le produit P scrit sur 2n bits
(P<22n)
La multiplication des nombre radicaux peut seffectuer sur le mme principe. La virgule est place en
utilisant les mmes rgles que pour la multiplication dcimale. Le nombre de digits droite de la virgule est gal
la somme du nombre de digits droite de la virgule du multiplicande et du multiplieur.
110.10
10.1
Multiplicande
Multiplieur
-----11010
00000
11010
Produit partiel
Produit partiel
Produit partiel
------10000.010
Pour les nombre signs, la technique la plus simple pour effectuer la multiplication de nombres ngatifs est
d'utiliser le processus prcdent avec la valeur absolue du nombre et de dterminer le signe sparment
(Signe(R) = Signe(A) ouex Signe(B)). Il est galement possible de raliser la multiplication directement avec
des nombres ngatifs reprsents par leur complment 2. Ceci est fait couramment en utilisant un transcodage
appel algorithme de BOOTH.
7.6.3. Multiplieur squentiel
Supposons que l'on dispose de deux registres de n bits A et B pour stocker les oprandes et de deux registres
R1 et R2 pour stocker le rsultat final. La multiplication de deux nombres A et B peut tre ralise selon
lalgorithme suivant :
24
(A)
1110
(B)
1011
---------0000 0000
R2R1
+A*20
1110
R2R1
+A*21
0000 1110
1 110
R2R1
0010 1010
Initialisation de R1 et R2
b0=1 => on ajoute A*20
---------+0*2
R2R1
+A*2
0010 1010
3
R2R1
111 0
---------1001 1010
D'aprs cet algorithme, il faut faire des additions de 2n bits entre R1R2 et A, A tant dcal au maximum de
(n-1) positions vers la gauche. En ralit, les additions ne portent que sur des oprandes de n bits (rsultat sur
n+1 bits), le reste du rsultat tant la recopie d'une partie de R1R2. Il est donc possible de n'utiliser qu'un
additionneur de n bits.
A devant tre dcal de R1 R2, il faudrait donc le stocker dans un registre de 2n bits. En fait il reviens au
mme de fixer A et de dcaler R1R2 vers la droite, condition de stocker le rsultat de l'addition dans R2. On
doit donc introduire une bascule R3 (registre 1 bit) pour la retenue ventuelle de l'addition (R2 + A -> R3R2).
Cette approche permet de n'utiliser pour A qu'un registre n bits.
(A) 1110
(B) 1011
R3R2R1
+A
Initialisation de R3 R2 R1
b0=1 => (R2 + A -> R3R2)
-----------R3R2R1
0 1110 0000
Dcalage de R3R2R1
R3R2R1
+A
0 0111 0000
1110
-----------R3R2R1
1 0101 0000
Dcalage de R3R2R1
R3R2R1
+0
0 1010 1000
0000
-----------R3R2R1
0 1010 1000
Dcalage de R3R2R1
R3R2R1
+A
0 0101 0100
1110
-----------R3R2R1
1 0011 0100
Dcalage de R3R2R1
R3R2R1
0 1001 1010
Fin
Si on observe l'volution de R1 et de B au cours des dcalages successifs, on constate que l'on a toujours n
zros qui ne sont d'aucune utilit. On peut encore conomiser un registre en plaant B dans R1, d'ou le schma
minimal de la multiplication.
25
(A) 1110
-----------R3R2R1
0 0000 1011
+A
1110
-----------R3R2R1
0 1110 1011
Dcalage de R3R2R1
R3R2R1
0 0111 0101
+A
1110
------------
R3R2R1
1 0101 0101
Dcalage de R3R2R1
R3R2R1
0 1010 1010
+0
0000
------------
R3R2R1
0 1010 1010
Dcalage de R3R2R1
R3R2R1
0 0101 0101
+A
1110
------------
R3R2R1
1 0011 0101
R3R2R1
0 1001 1010
Dcalage de R3R2R1
Fin
11
30
20
0
1011
-100
---0011
-000
---0110
-100
---0100
-100
---0000
4
2,75
100
10,1100
26
Si R>B
1 0 1 1
- 0 1 0 0
------1 0
- 0 1 0 0
------1 0 1
1
- 0 1 0 0
------0 0 1 1
0
- 0 1 0 0
------0 0 1 1 0
1
- 0 1 0 0
------0 0 1 0 0
1
- 0 1 0 0
------0 0 0 0 0
- 0 1 0 0
0
------0 0 0 0 0
0
- 0 1 0 0
La structure du diviseur binaire peut tre directement dduite du principe expos prcdemment.
A = a3 a2 a1 a0
B = b3 b2 b1 b0
A/B
Q = q7 q6 q5 q4 q3 q2 q1 q0
ai b i
a i bi
+
Ci
Ci-1
Ci
SiAlors
Si
Ci-1
Ri
1 0
SiAlors
Ri
0
+ -
B3
B2
+ -
+ -
0
+ -
A3
B1
+ -
B3
0
+ -
+ -
B2
A2
B1
+ -
+ -
B0
+ -
B3
B2
0
+ -
+ -
+ -
+ -
B0
+ -
B3
0
+ -
A1
B0
0
+ -
B2
+ -
+ -
27
B1
B3
+ -
B1
+ -
B2
+ -
A0
B0
0
+ -
B1
+ -
B0
+ -
28
00100
Le processus est ritr partir de l.
Exemple 1 : (12/5)
Dividende
Diviseur
1100
- 101
------
Dividende partiel
Diviseur dcal
0010
-
101
------Dividende partiel
- 0011
Ajout du diviseur
+ 101
-------
Dividende restaur
Diviseur dcal
0010
-
101
------Dividende partiel
- 00001
Ajout du diviseur
101
------Dividende restaur
Diviseur dcal
00100
-
101
-------Dividende partiel
Diviseur dcal
000011
-
101
--------0000001
29
Exemple 2 : (5/12)
Dividende
101
Diviseur
- 1100
------
Dividende partiel
- 0010
Ajout du diviseur
+ 1100
------Dividende restaur
Diviseur dcal
101
-
1100
------Dividende partiel
+ 01000
Diviseur dcal
Dividende partiel
+ 000100
Diviseur dcal
Dividende partiel
- 0000100
Ajout du diviseur
+ 1100
1100
------=> Quotient 0,011
1100
-------=> Quotient 0,0110
-------Dividende
restaur
Diviseur dcal
0001000
-
1100
-------- 00000100
30
Exemple : (12/5)
Dividende
Diviseur
1100
- 101
------
Dividende partiel
Diviseur dcal
0010
-
101
------Dividende partiel
- 0011
Diviseur dcal
101
------Dividende partiel
- 00001
Diviseur dcal
101
-------Dividende partiel
Diviseur dcal
000011
-
101
--------0000001
31
32