1)
L’algorithme de l’addition en base 10
Pour ajouter 2 nombres exprimés en base 10, on les pose en colonne :
On commence par ajouter les chiffres des unités, ici 8 et 6 ce qui donne 14.
Si le nombre trouvé est supérieur ou égal à la base, ici 10, on soustrait 10, on
écrit 4 et on a une retenue de 1 pour les dizaines. Ensuite, on ajoute les chiffres
des dizaines et la retenue : 2+5+1=8. Ce nombre est inférieur à 10 donc on
écrit 8 et la retenue pour les centaines vaut 0. On continue cet algorithme jusqu’à la fin.
Rem : la retenue initiale est égale à 0.
2)
Comment ajouter des nombres exprimés en base 2 ?
On procède de la me façon pour ajouter des nombres en base 2 :
On ajoute 1 et 1 et la retenue initiale qui vaut 0 : le résultat est 10.
Comme vu dans l’exemple précédent, si le nombre trouvé est supérieur
ou égal à 10 (2 en décimal), on soustrait la base et on a une retenue pour le
chiffre des deuzaines. On ajoute ensuite 0+1+1de retenue. Le résultat est 10 :
on pose 0 et on retient 1. Puis on continue l’algorithme jusqu’à la fin.
3)
Table daddition binaire
L’addition est l’opération qui
consiste à effectuer :
Dans un premier temps, la somme S
i
de deux
digits de me rang tels
que
ai
et
bi
par exemple,
Puis dans un second temps, une
deuxième somme entre les digits de
rang supérieur
ai
+1 et
bi
+1 et la valeur de la
retenue issue de l’addition
précédente R
i
.
1.
Compléter la table d’addition de deux
nombres binaires :
0
+
0
=
0
+
1
=
1
+
0
=
1
+
1
=
je pose 0 et je retiens 1
Si l’on désire additionner des nombres
binaires comportant plusieurs bits
(an1, . . . , a2, a1, a0) + (bn1, . . . , b2, b1, b0),
on doit ajouter les unités (rang 0),
puis les bits de rang 1, puis 2, etc.
PARTIE ALGORITHMIQUE
TP3 Addition de deux entiers exprimés en binaire
1 0 1 0
7 2 8
+ 4 5 6
1 1 8 4
1 1 1 0
1 0 1
+ 1 1 1
1 1 0 0
Rn1
bn
Sn
Rn
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
Il faut tenir compte, dès le deuxième rang que l’on peut avoir une retenue ; donc il
faut ajouter au résultat précédent la retenue de l’addition de rang inférieur. Pour
l’addition de deux nombres binaires, on peut donc considérer qu’il faut
ajouter à
chaque rang, 3 bits :
S
n
= (a
n
+ b
n
) + R
n1
2.
Compléter la table suivante
4)
Algorithme d’addition.
1) Compléter l’algorithme d’addition ci-dessus :
2) Définir une fonction add2 qui effectue l’addition binaire de 2 entiers A et B donnés par leur
représentation binaire sur n bits.
3) On pensera à traiter le cas particulier de la dernière retenue égale à 1.
Algorithme :
Addition en base 2
INITIALISATION :
A
FFECTER À
R
LA VALEUR ..
TRAITEMENT :
POUR i VARIANT DE 0 À ……
AFFECTER À w LA VALEUR ai + bi + R
SI w <=…….. ALORS
A
FFECTER À
S
i
LA VALEUR .
A
FFECTER À
R
LA VALEUR
SINON
A
FFECTER À
S
i
LA VALEUR
A
FFECTER À
R
LA VALEUR
….......
En considérant une addition binaire comme la somme à
effectuer sur 3 mémoires 1 bits, nous aurons comme
résultat : un bit de somme et un bit de retenue.
La retenue est égale à 1 dès que le résultat de la somme
précédente atteint la valeur 2 (10 en binaire) ou 3 (11 en
binaire).
Soit 2 nombres A et B
représentés par les listes :
A
= [a
n
1,
a
n
2,
. . .,
a
0
]
B
= [b
n
1,
b
n
2,
. . .,
b
0
]
et leur somme S = A + B
représentée par la liste :
S
= [
S
n
1,
S
n
2,
. . ., S
0
]
et soit R
n1
R
n2
. . . R
0
les retenues
successives.
En Python, dans les
programmes réalisés au cours
de ce TP,
A, B et S seront
représentés par des variables de
type
list
.
Le nombre 6 sera par
exemple représenté par la
liste :
[1,1,0]
.
Aide : transformer la chaine issue de l’input en liste avec la fonction list(chaine). Placer les sommes
de la droite vers la gauche dans une liste s grâce à s.insert(0,valeur à insérer). int(ch) transforme
un caractère ‘6’ en nombre entier 6.
4) Pour les plus rapides, écrire une fonction nommée neg2 qui détermine le complément à 2n d’un
entier codé sur n bits.
a) Première méthode : pour trouver le complément à 2n d’un entier A écrit sur n bits, il
suffit, dans la représentation binaire de A, de remplacer chaque 0 par un 1 et chaque
1 par un 0. Il suffit ensuite d’ajouter 1 au nombre obtenu.
b) Deuxième méthode : pour donner le complément à 2n, en partant de la droite, on
garde les zéros jusqu’au premier ‘1’ rencontré. On garde aussi ce premier ‘1’. En se
déplaçant vers la droite, on inverse les chiffres (1 devient 0 et 0 devient 1).
1 / 3 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !