![]() |
Copyright |
![]() 7 pages à l'impression |
![]() |
![]() |
version initiale 2000 |
dernière
mise à jour 18 mars 2013 |
Arithmétique binaire
demi additionneur binaire | . | |||
additionneur complet | .avec deux demi additionneurs | |||
additionneur parallèle | .pour le microprocesseur | |||
additionneur BCD | .la calculette | |||
additionneur série | . | |||
soustraction binaire | .piège de l'ordinateur | |||
semi-soustracteur | . | |||
addi-soustracteur en complément à 2 | .une ruse pour simplifier | |||
multiplication binaire | une addition sophistiquée | |||
division de fréquence | .facile | |||
division | .plus compliquée | |||
![]() |
![]() |
![]() |
![]() |
une collection d'icônes pour visiter tout le site |
Dans ce chapitre nous allons examiner comment effectuer les quatre opérations arithmétiques bien connues de tous dans le système décimal, mais ici il s'agira de la base 2.
Demi additionneur binaireConsidérons la table
X | Y | S | R |
0 | 0 | 0 | 0 |
0 | 1 | 1 | 0 |
1 | 0 | 1 | 0 |
1 | 1 | 0 | 1 |
additionneur completPour faire un additionneur complet il faut un circuit qui additionne 2 digits et la retenue de la somme des digits de poids immédiatement inférieur et répondant à la table
X | Y | R-1 | S | R |
0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 | 0 |
0 | 1 | 0 | 1 | 0 |
0 | 1 | 1 | 0 | 1 |
1 | 0 | 0 | 1 | 0 |
1 | 0 | 1 | 0 | 1 |
1 | 1 | 0 | 0 | 1 |
1 | 1 | 1 | 1 | 1 |
additionneur parallèleCe cas est typiquement exploité dans le microprocesseur. Soit 2 nombres de 4 digits X1, X2, X3, X4 et Y1, Y2, Y3, Y4 que l'on désire additionner. Ces nombres sont stockés dans deux registres dont les sorties sont commandées en parallèle. Le dispositif est du type ci-dessous :
additionneur BCDIl s'agit typiquement du cas de la calculette. Soit à vouloir effectuer une addition de nombres avec des chiffres décimaux codés en binaire
6 |
0110 0111 |
|
total
13 |
1101 | = S correct en binaire pur mais pas en DCB |
R=1 et S=3 | avec R=0 |
1101 |
|
1 |
0011 |
R=1 | ,
S=3 |
additionneur sérieSi les nombres à ajouter sont contenus dans des registres à sortie série. Le circuit d'addition sera :
soustraction binairePlusieurs techniques peuvent être utilisées : Tout d'abord on a l'habitude de représenter un nombre négatif par le positif correspondant précédé du signe moins. La table de soustraction est la suivante
X | - Y | = S | R |
0 | 0 | 0 | 0 |
0 | 1 | 1 | 1 |
1 | 0 | 1 | 0 |
1 | 1 | 0 | 0 |
10000 |
-
1000 |
= 1000 |
0 |
0101 |
1 |
1000 |
1 |
1101 |
10000 |
-
1101 |
0011
|
1 |
<--
retenue de l'addition |
|
0 |
0111 |
|
1 |
1110 |
|
10 |
0101 |
<--
soit plus cinq |
le 1 est ignoré, le 0 est le bit de signe |
semi-soustracteurIl répond à la table X -Y = S
X | Y | S | R |
0 | 0 | 0 | 0 |
1 | 0 | 1 | 0 |
0 | 1 | 1 | 1 |
1 | 1 | 0 | 0 |
additionneur - soustracteur de nombres signés codés en complément à 2Au lieu de faire X - Y on va effectuer X + Y*. Le synoptique du principe est le suivant
autre procédureA - B on fait B' complément logique de B ex B = 1011 soit B' = 0100 notons que si l'on fait la somme de B + B' on obtient 1111 soit très précisément 2N - 1, donc B = (2N-1) - B'
multiplication binaireLa multiplication consiste à faire une suite d'additions avec le multiplicande décalé vers la gauche. Cette opération est répétée autant de fois qu'il y a d'éléments binaires dans le multiplicateur.
1101 |
multiplicande |
x
1011 |
multiplicateur |
0001101 |
|
0011010 |
décalage
1 pas |
1101000 |
décalage
3 pas |
10001111 |
résultat |
1 registre à décalage pour le multiplicande
1 registre à décalage pour le multiplicateur
1 registre pour le résultat
1 additionneur
1 compteur pour le nombre de pas de décalage
division de fréquenceSur un compteur binaire tel celui ci-dessous on applique une horloge de fréquence f, à la sortie du premier étage on obtient une fréquence f/2, et au nième étage f/2n
24 | 23 | A | 20 | B | ||||
0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 |
1 | 1 | 0 | 1 | 0 | décalage | :
étape 1 |
||||
- | 0 | 1 | 0 | 1 | 2 |
|||||
1 | 1 | 1 | 0 | 0 | 3 |
|||||
+ | 0 | 1 | 0 | 1 | 4 |
|||||
0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | restauration |
5 |
|
1 | 1 | 0 | 1 | 0 | 0 | décalage |
6 |
|||
- | 0 | 1 | 0 | 1 | 7 |
|||||
1 | 1 | 1 | 1 | 0 | 8 |
|||||
+ | 0 | 1 | 0 | 1 | 9 |
|||||
0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | restauration |
10 |
0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 11 |
||
- | 0 | 1 | 0 | 1 | 12 |
|||||
0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | le chiffre à gauche est un 0 |
13 |
|
0 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | ajout d'un 1 |
14 |
- | 0 | 1 | 0 | 1 | décalage |
15 |
||||
1 | 1 | 1 | 1 | 0 | 16 |
|||||
+ | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 0 | en vert le quotien 0010 soit 2 |
17 |
0 | 0 | 0 | 1 | 1 | en bleu le reste 0011 soit 3 |
18 |
![]() |
![]() |
![]() |
![]() |