You are on page 1of 25

WWW.RESEAUMAROC.

COM
Cours/formation /Video en informatique: Linux,Cisco,2003 Server,securité,Réseaux.
Contact : tssri-reseaux@hotmail.fr TEL : 00212669324964

Vers une approche complète de génération de code 1


TRAITEMENT DE L'INFORMATION
Arithmétique et opérations logiques

Plan
1. Arithmétique binaire

2. Arithmétique en BCD

3. Opérations logiques
INTRODUCTION

Le traitement de l’information dans un système


informatique peut être de deux types :

 Arithmétique : Opérations d’addition,


soustraction, multiplication, division,…

 Logique : Opérations de décalage, le produit


logique, le OU logique,…
ARITHMÉTIQUE BINAIRE

 Les opérations en binaire :

 s'effectuent comme en base 10

 pour l'addition et la soustraction, on opère


chiffre par chiffre, des poids faibles aux poids
forts, en propageant la retenue

 pour la multiplication et la division, on procède


par série d'additions ou de soustractions
ARITHMÉTIQUE BINAIRE suite

 Addition et soustraction
Ces opérations peuvent être décrites par les tables
suivantes :

a b somme retenue a b différence retenue


0 0 0 0 0 0 0 0
0 1 1 0 0 1 1 1
1 0 1 0 1 0 1 0
1 1 1 1 1 1 0 0
ARITHMÉTIQUE BINAIRE suite

Exemple (Représentation sur 5bits)


11011 27 11011 27
+ + - -
10110 22 10110 22
1 10001 49 00101 5

Débordement (overflow)
 Il intervient lorsque le résultat de l'opération n'est
pas représentable dans le système utilisé (i.e., avec le
nombre de chiffres utilisé)
 Dans le cas d'une addition de deux nombres en
codage binaire naturel, le débordement correspond à
une retenue sortante à 1 (cas de 27 + 22 sur 5 bits)
ARITHMÉTIQUE BINAIRE suite

 Opérations en complément
 En complément à 1 : la retenue engendrée par
l’addition des bits les plus à gauche est additionnée
aux bits le plus à droite
 Exemple (Représentation sur 7 bits + 1 bit de
signe)

00001010 +10
11111100 +(-3)
1 00000110 +7
+ 1
00000111
ARITHMÉTIQUE BINAIRE suite

 Opérations en complément

 En complément à 2 : le retenue est purement


ignorée

 Exemple (Représentation sur 7 bits + 1 bit de


signe)

00001010 +10
11111101 +(-3)
1 00000111 +7

ignorée
ARITHMÉTIQUE BINAIRE suite
 Addition avec le complément à deux
Considérons d'abord le cas d'une addition sans
débordement (on ne considère que les n bits résultats
d'une opération sur deux nombres sur n bits).
Détaillons les 4 cas (selon les signes des opérandes
représentés sur 5 bits) :

00 0010 1 11110 110110 0 01110


0 0101 +5 1 1011 -5 1 1011 -5 0 0101 +5
0 1001 +9 1 0111 -9 0 1001 +9 1 0111 -9
0 1110 +14 1 0010 -14 0 0100 +4 1 1100 -4
ARITHMÉTIQUE BINAIRE suite

Addition avec le complément à deux


Considérons le cas du débordement : il y a
débordement si : les opérandes X et Y sont de même
signe, et le résultat est de signe différent

Exemple
0 10010 101110
0 1101 +13 1 0011 - 13
0 1001 + 9 1 0111 - 9
Sur 5 bits 1 0110 -10 0 1010 + 10
Sur 6 bits 0 1 0110 +22 1 0 1010 - 22
ARITHMÉTIQUE BINAIRE suite

Addition avec le complément à deux

Le débordement peut être détecté :

 en comparant le signe des opérandes au signe du


résultat : s'ils sont différents, il y a débordement

ou

 en comparant la retenue entrante dans le bit de


poids fort (bit de signe) avec la retenue sortante :
s'ils sont différents, il y a débordement
ARITHMÉTIQUE BINAIRE suite
 Multiplication et division
 La multiplication est très simple : elle ne consiste
qu'en des additions successives du multiplicande avec
lui même décalé
 Le résultat d'une multiplication avec des opérandes
de n bits est codé sur 2n bits.
Exemple : Multiplication de deux entiers naturels représentés sur 4 bits
1 1 0 1 13 multiplicande
x1 0 1 1 11 multiplieur
1 1 0 1
1 1 0 1
0 0 0 0
1 1 0 1
1 0 0 0 1 1 1 1 143 produit 143 tient sur 8 bits
ARITHMÉTIQUE BINAIRE suite
 Ces opérations (multiplication) fonctionnent aussi
avec des nombres codés en notations complémentées

Exemple :
11011 -5 01011 11
11101 -3 11101 -3
000001111 15 111011111 -33

 La division consiste en des soustractions


successives.
ARITHMÉTIQUE EN BCD
 Addition
Pour l’addition, il faut rajouter 6 chaque fois que le
résultat > 9.
 Exemple 1
0011 3 en BCD
0100 4 en BCD
0111 7 en BCD
0111 [0000, 1001]  Opération correcte
ARITHMÉTIQUE EN BCD
 Addition
 Exemple 2
1001 9 en BCD
+ 0101 5 en BCD
1110 code inexistant en BCD

 Le problème vient qu’en BCD, on utilise que 10 combinaisons


binaires parmi 24 = 16 possibles
 Pour obtenir un résultat correct, il faut tout simplement
ajouter 6 au résultat en binaire pur
1110 résultat incorrect
+ 0110 6 en BCD
1 0100 résultat correct qui tient sur 2
digits
ARITHMÉTIQUE EN BCD

 Remarques

1. Pour la soustraction, il faut retrancher 6 chaque


fois que le résultat est < 9

1. L’arithmétique en BCD n’existe plus dans les


processeurs actuels. Les opérations en BCD sont en
fait réalisées par des calculs sur des entiers
binaires. Par contre, le programmeur peut travailler
en BCD et se charge de la correction en utilisant une
instruction machine (Adjust decimal ) si le
processeur ne dispose pas de l’ instruction machine (
Add BCD ).
OPÉRATIONS LOGIQUES

 Les opérations logiques généralement utilisées


dans un système informatique sont :

 Le décalage

 Le produit logique

 Le OU logique

 Le OU exclusif
OPÉRATIONS LOGIQUES suite
 Décalage
 Une opération de décalage correspond au déplacement des
bits d’un mot, sur lui même, à gauche ou à droite d’un
certain nombre de pas
 Les bits qui débordent à gauche ou à droite sont perdus
sauf pour le décalage circulaire ou rotation où les bits
déplacés sont ré-injectés de l’autre côté
 A la place des bits déplacés, des zéro (voire des un pour
les décalage avec extension de signe) sont inscrits
automatiquement

 Exemple
00000000 01110011 A
00000000 00011100 A (décalage à droite de 2 bits)
11000000 00011100 A (décalage circulaire à droite
de 2 bits)
OPÉRATIONS LOGIQUES suite
 Décalage
 Les décalages sont utilisés pour accélérer
certains opérations arithmétiques :
 le décalage à gauche de k bits correspond à une
multiplication par 2k
 le décalage à droite de k bits correspond à une
division par 2k
 Les décalages circulaires sont utilisés pour tester
les bits d’un mot à condition que le bit de signe
soit inclus. Ils sont aussi utilisés dans des
algorithmes de compression ou décompression de
données
OPÉRATIONS LOGIQUES suite
 Décalage
 Exemple de décalage à gauche :

 14 x 4 = 14 x 22 donc décalage à gauche de 2 bits


14=(01110) résultat de la multiplication :0111000 = 56
 15 x 6 = 15 x (22 + 21 ) 15=(01111)
décalage à gauche de 2 bits 0 1 1 1 1 0 0
décalage à gauche de 1 bits + 0 1 1 1 1 0
resultat = 1 0 1 1 0 1 0

 Exemple de décalage à droite :

 14 / 4 = 14 / 22 donc décalage à droite de 2 bits


14=(01110) résultat de la division : 00011 = 3
OPÉRATIONS LOGIQUES suite
2. Le produit logique
 Le résultat d’un produit logique de deux mots correspond
au produit bit à bit des deux mots. Il est utilisé pour
extraire des bits dans un mot.

 Exemple
Soit un mot de 32 bits composé de 4 caractères codés sur 8
bits. Supposons que l’on veuille séparer le second caractère
afin de l’imprimer. Pour ce faire le mot de 4 caractères
subit un produit logique avec une constante appelée masque.
Voir l’exemple
OPÉRATIONS LOGIQUES suite

 Le produit logique

Exemple

10110111 10111100 11011011 10001011 A

00000000 11111111 00000000 00000000 masque

00000000 10111100 00000000 00000000

00000000 00000000 00000000 10111100 décalage à


droite de 16
bits
OPÉRATIONS LOGIQUES suite
 Le OU logique

 Le résultat d’un OU logique de deux mots correspond au


produit bit à bit, en ignorant la retenue, des deux mots

 Il est utilisé pour insérer des bits dans un mot (opération


inverse de l'extraction)

 Exemple
On veut modifier les 8 bits de droite d'un mot de 32 bits
sans toutefois perturber les 24 autres bits. Pour ce faire,
on commence par masquer les 8 bits à modifier (Produit
logique) puis on effectue le OU logique avec les 8 bits à
insérer dans le mot
OPÉRATIONS LOGIQUES suite

 Le OU logique
 Suite de l'exemple
10110111 10111100 11011011 10001011 A
11111111 11111111 11111111 00000000 M=masque
10110111 10111100 11011011 00000000 Produit
logique(A,M)
00000000 00000000 00000000 01010111

10110111 10111100 11011011 01010111 résultat du


OU logique
OPÉRATIONS LOGIQUES suite

 Le OU exclusif

 Le OU exclusif est utilisé quelquefois pour


générer des nombres aléatoires