Académique Documents
Professionnel Documents
Culture Documents
• Variable discrète :
Une variable discrète est une variable qui prend ses valeurs dans un ensemble S de cardinalité
C finie, non vide.
C'est une Variable discrète dont la cardinalité de l'ensemble S est C=2. Les éléments de
1'ensemble S sont les valeurs que peut prendre la variable discrète. Ces éléments sont notés de façon
complémentaire : " Vrai / Faux", "Oui / Non", "Ouvert/ Fermé", " 0/ 1".
Une combinaison de " n" variables discrètes est une juxtaposition ordonnée de ces variables
prises dans l'ensemble des ses valeurs. Cette combinaison s'appelle "MOT" qui est une séquence de
symboles (alphabet) représentant une information
Exemple : S = {0,1,2,3}
22131 est une des combinaisons de 5 variables de S
• Mot binaire :
Un mot binaire de n digits est un ensemble ordonné de n variables binaires.
Digit ou Binary dígít (BIT) = nombre valant 0 ou 1
1
Support de cours Module LCS 2ème année Télécom section B 2015-2016
2. Numération
3. Codage
Codage: Un nombre décimal est un nombre exprimé dans le système décimal, c`est à dire à
base 10. Le codage est l'opération de transformation de l'écriture d'un nombre décimal dans une base
B quelconque.
De manière générale tout nombre N exprimé dans une base b peut se décomposer sous la forme polynomiale
suivante :
2
Support de cours Module LCS 2ème année Télécom section B 2015-2016
Tout entier décimal N peut s'écrire dans une base b quelconque. b est la cardinalité de S
• Codages courants :
4. Codage binaire ( B = 2 )
• Le système binaire (ou la numération à base 2) est le système de codage utilisé en électronique
numérique et son application aux systèmes informatiques. On dispose de 2 symboles {0,l} appelés
bits.
• Lorsqu'on code en binaire, on cherche généralement à utiliser un nombre fixe de bits: On parle
alors de format de 4 bits, de 8 bits (octet) , de 16 bits, 32, 64 bits...
• Format de n bits : il permet de représenter tous les nombres entiers N compris entre 0 et 2 n-1.
Ce nombre au format de n bits s`appelle communément << mot de n bits >›
3
Support de cours Module LCS 2ème année Télécom section B 2015-2016
• Comptage binaire :
Méthode1:
- On sait que 0 ≤ N ≤ Bn-1 et B = 2
- On détermine le nombre n de bits minimum pour coder N
- On positionne les bits ai à 0 ou 1 de telle façon que
18= (10010)2 1 0 0 1 0
Pour effectuer une conversion d’un entier décimal dans une autre base on applique la méthode
des divisions successives : on effectue des divisions successives du nombre par cette base, les restes
successifs forment alors le nombre converti.
4
Support de cours Module LCS 2ème année Télécom section B 2015-2016
exemple, dans le cas d’une conversion d’un nombre décimal en son équivalent binaire,
A titre d’exemple,
on réalisera des divisions successives par 2. Les restes de ces divisions formeront le nombre converti
dans la base 2.
• Nombres fractionnaires
Pour convertir un nombre fractionnaire de la base 10 vers une autre base, il faut procéder en
deux étapes. La partie entière du nombre est convertie comme indiqué précédemment ; la partie
fractionnaire du nombre est convertie par multiplications successives : on multiplie successivement
la partie fractionnaire par la base cible, en retenant les parties entières qui apparaissent au fur et à
mesure.
5. Codage octal ( B = 8 )
• La numération octale (à base 8) dispose de 8 symboles qui ne sont autres que les chiffres de 0 à
7. Si on code sur n chiffres, on peut représenter tous les nombres entiers décimaux compris entre O et
8n-1.
5
Support de cours Module LCS 2ème année Télécom section B 2015-2016
• Exemple:
Comme pour la conversion en binaire, on effectue ici la méthode des divisions euclidiennes
successives par 8
⇒ 99 = (143)8
Il suffit de faire des regroupements de 3 bits sur le mot binaire. En effet, un mot binaire de 3 bits
permet de coder les nombres entiers décimaux compris entre 0 et 7:
Exemple 1: 39 = ( 1 0 0 1 1 1 )2
(4 7 )8
6
Support de cours Module LCS 2ème année Télécom section B 2015-2016
6. Codage Hexadécimal ( B = 16 )
• La numération hexadécimal (à base 16) est apparue avec la logique programmée. Elle est
largement utilisée en programmation.
• On dispose de 16 symboles: les chiffres de 0 à 9 et les lettres de A à F qui correspondent aux
valeurs décimales 10 à 15
• Si on code sur n chiffres, on peut représenter tous les nombres entiers décimaux compris entre
0 et 16n-1.
• Voici l'équivalence des codages dans les 3 numérations (décimal, hexadécimale) :
• Exemple:
Comme pour la conversion en binaire, on effectue ici la méthode des divisions euclidiennes
successives par 16
⇒ Il suffit de faire des regroupement de 4 bits sur le mot binaire car avec 4 bits il est possible de
coder les nombres de 0 à 15:
Exemple :
Soit le nombre binaire 100111.
- Il faut regrouper 4 bits sur ce mot à partir de la droite: 10 0111
- On complète alors par des zéros à gauche pour avoir 4 bits : 0010 01 11
- Ce qui donne en tenant compte de la pondération de chaque bit 8-4-2-1:
0010 = 2
01 11 = 7
D'où le résultat:( 100111 )2 = ( 27 )16
7
Support de cours Module LCS 2ème année Télécom section B 2015-2016
• Il n’existe pas de méthode pour passer d’une base b1 à une autre base b2 directement.
• L’idée est de convertir le nombre de la base b1 à la base 10 , puis convertir le résultat
de la base 10 à la base b2 .
Les systèmes numériques doivent être capables de traiter des nombres positifs et négatifs.
L’utilisation d’une représentation signée suppose l’utilisation d’un format (nombre de bits) fixé au
préalable.
En binaire, on ne connaît pas les signes "+" et "-".
" Par convention, en codage binaire signé, le bit
de poids fort indique le signe du nombre.
7.1. Le complément à un
Pour obtenir le complément à un d'un nombre binaire, il faut complémenter chaque bit c'est-à-
c'est
dire transformer les "0" en "1" et les "1" en "0".
Exemple 1 :
+4 décimal 0000 0100 en binaire
/4 décimal 1111 1011 en complément à un
Exemple 2 :
+100 décimal 0110 0100 en binaire
/100 décimal 1001 1011 en complément à un
8
Support de cours Module LCS 2ème année Télécom section B 2015-2016
• Le principe d’obtention de l’opposé d’un nombre négatif est le même que celui
permettant d’obtenir l’opposé d’un nombre positif,
• Le nombre 0 a une représentation unique,
• Un format sur n bits permet de coder en CA2 les nombres N vérifiant
-2n-1 ≤ N ≤ +2n-1-1
Par exemple, pour n = 4,
On peut ainsi représenter des nombres compris entre -4 et +3 sur un format de 4 bits, entre -16
et +15 sur un format de 5 bits, entre -32 et +31 sur un format de 6 bits, entre -64 et +63 sur un format
de 7 bits, etc.
• Le bit de poids fort (MSB) est représentatif du bit de signe, mais il est traité comme les autres
bits dans les opérations arithmétiques : si MSB = 0 le nombre est positif, si MSB = 1 le nombre est
négatif.
• Le nombre +2n−1 n’est pas représenté. En effet, dans le cas où n = 4, le calcul du CA2 de 1000
donne -(-8) = 0111 + 1 = 1000 = -8. Ce qui est arithmétiquement incorrect, car 0 est le seul entier à
être son propre opposé. On a donc choisi de supprimer la représentation du nombre +2n−1 , un MSB à 1
étant représentatif d’un nombre négatif.
9
Support de cours Module LCS 2ème année Télécom section B 2015-2016
• Exemple: n = 4:
Il est possible de coder :
- Nombres non signés sur 4 bits : 24 = 16 : 0 à 15
- Nombres signés sur 4 bits : on "coupe en 2" 16 / 2 = 8 : -8 à +7
L’ensemble des codes binaires peuvent être regroupés en deux classes : les codes pondérés et
les codes non pondérés.
Un code est dit pondéré si la position de chaque symbole dans chaque mot correspond à un
poids fixé : par exemple 1, 10, 100, 1000 ... pour la numération décimale, et 1, 2, 4, 8, ... pour la
numération binaire. Les codes pondérés ont, en général, des propriétés intéressantes du point de vue
arithmétique.
Ce sont les codes utilisés en arithmétique binaire et qui ont été étudiés précédemment
Ce code est utilisé dans de nombreux systèmes d’affichage, de comptage ou même les
calculatrices de poche. Dans le code BCD chaque chiffre d’un nombre décimal ( de 0(10) à 9(10)) est codé
à l’aide de 4 bits (de 0000(2) à 1001(2)). Ainsi le code BCD n’utilise que 10 mots de codes de 4 bits.
Chaque chiffre d'un nombre décimal est donc codé sur un mot binaire de 4 bits, car il faut 4 bits
pour coder jusqu'à 9. Or 4 bits permettent de coder les nombres de 0 à 15 : Il ne faut donc pas tenir
compte du codage dépassant 9.
10
Support de cours Module LCS 2ème année Télécom section B 2015-2016
- Exemple :
Dans le cas des codes non pondérés, il n’y a pas de poids affecté à chaque position des
symboles. On convient simplement d’un tableau de correspondance entre les objets à coder et une
représentation binaire. De tels codes peuvent néanmoins parfois posséder des propriétés
arithmétiques intéressantes, comme le code excédent 3.
Le code excédent 3 utilise, tout comme le code BCD, 10 mots de codes, auxquels on fait
correspondre les 10 chiffres décimaux.
Il est obtenu en décalant le code binaire de trois lignes vers le haut. Ce code peut être
intéressant pour effectuer des soustractions car le complément à 1 de la représentation binaire d’un
chiffre correspond au complément à 9 de ce chiffre. Ainsi, toute opération de soustraction se ramène à
une addition.
Ce code numérique n’étant pas pondéré, il est peu employé pour les opérations arithmétiques.
Il est, par contre, utilisé pour le codage des déplacements angulaires, linéaires ou pour la réalisation
des tableaux de Karnaugh. La propriété principale de ce code est que deux mots successifs du code
11
Support de cours Module LCS 2ème année Télécom section B 2015-2016
ne diffèrent que par un élément binaire. Ceci permet, d’une part d’éviter la génération d’aléas
(états parasites) au passage de deux combinaisons successives.
L’appellation "binaire réfléchi" provient de sa technique de construction : on peut construire
un code de Gray sur n bits à partir d’un code de Gray sur n-1 bits en procédant comme suit :
Soit un nombre N en binaire pur, pour obtenir son équivalent n en binaire réfléchi, il suffit d'effectuer
l'opération suivante :
n = (N ⊕ 2N) / 2
Exemple :
soit N = 0111,
nous avons 2N = 1110 (pour multiplier par 2 on effectue un décalage de la droite vers la gauche).
On effectue maintenant l'opération OU Exclusif de N et 2N :
0 111 ⊕ 1110 = 1001
Puis nous divisons par 2 le résultat soit 1001 / 2 = 0100 (pour diviser par 2 on effectue un décalage de
la gauche vers la droite).
Gn = Bn ⊕ B(n+1)
Nous avons alors : pour N = 0111 en binaire pur correspond n = 0100 en code Gray.
12
Support de cours Module LCS 2ème année Télécom section B 2015-2016
Bn=B(n+1) ⊕ Gn
pour n= 0100 en code Gray correspond N = 0111 en binaire pur
Nous donnerons un tableau des principaux codes. Il faut toutefois mentionner le code GRAY ou
binaire réfléchi. Ce code présente l'avantage qu'il n'y a qu'un seul bit qui change à la fois. Il offre dès
lors de multiples utilisations.
Un ordinateur ne serait pas d'une bien grande utilité s'il était incapable de traiter l'information
non numérique. Un ordinateur doit reconnaître des codes qui correspondent à des nombres, des
lettres, des signes de ponctuation et des caractères spéciaux. Un ensemble de caractères complet doit
renfermer les 26 lettres minuscules, les 26 lettres majuscules, les dix chiffres, les 7 signes de
ponctuation et entre 20 à 40 caractères spéciaux comme +, /, #, %.
13
Support de cours Module LCS 2ème année Télécom section B 2015-2016
Code ASCII
Le binaire permet de coder les nombres que les systèmes informatiques peuvent manipuler.
Cependant, l'ordinateur doit aussi utiliser des caractères alphanumériques pour mémoriser et
transmettre des textes. Pour coder ces caractères, on associe à chacun d'entre eux un code binaire,
c'est le codage ASCII (American Standard Code for Information Interchange).
Le code ASCII standard n’inclus pas des caractères comme les lettres avec les accents é, è, à, etc.
Le nombre de bits utilisé à donc été augmenté à 8. Nous disposons ainsi 256 éléments codés.
L’extension du code ASCII n’est pas standard. En français nous avons besoin des lettres avec des
accents comme é, è, à, ... En allemand, il y a d’autres caractères comme ü, ä, .... Il existe donc autant de
variantes du code ASCII étendu sur 8 bits qu’il y a de pays voir de régions!
Opérations arithmétiques
Pour l'instant les codes nous permettaient de coder un nombre naturel en décimal, en binaire,
en hexadécimal et de coder un caractère en code ASCII. Afin de comprendre les opérations
arithmétiques calculées par un microprocesseur il est nécessaire de maîtriser le codage des nombres
entiers négatifs. Ce code est appelé le code complément à deux.
Exemples
1. Addition de 2 entiers :
Quand un nombre signé à 1 comme bit de signe et que des 0 comme bits de grandeur, son
équivalent décimal est -2N-1, où N est le nombre de bits de la représentation signée.
Exemple:
1000 = -24-1 = -23 = - 8
10000 = -25-1 = -24 = - 16
100000 = -26-1 = -25 = - 32 et ainsi de suite.
14
Support de cours Module LCS 2ème année Télécom section B 2015-2016
D’où la plage de variation des nombres entiers signés avec une représentation en complément
à 2 sur N bits :
-2N-1 à +(2N-1-1)
Dans tous les cas étudiés, il est important que vous remarquiez que le bit de signe de chaque
nombre est traité sur le même pied que les bits de la partie grandeur.
Remarquez que les bits de signe sont 0 et que celui de la somme est aussi 0, ce qui indique un
nombre positif.
En fait, un report est produit au moment de l'addition du dernier rang à gauche. Ce report est
toujours rejeté d'où la somme finale de 00000101, soit le nombre décimal +5.
15
Support de cours Module LCS 2ème année Télécom section B 2015-2016
Dans ce cas-ci le bit de signe de la somme est 1, ce qui indique un nombre négatif. Pour trouver
la grandeur exacte de la somme, on doit prendre le complément à 2 de 1111 1011, ce qui donne 0000
0101 (5); la réponse est donc 1111 1011 = -5.
2. Soustraction: complément à 2
Une opération de soustraction qui porte sur des nombres exprimés dans la notation en
complément à 2 est en réalité une opération d'addition qui diffère peu des cas examinés
précédemment. Quand on soustrait un nombre binaire d'un autre nombre, la marche à suivre est
comme suit:
16
Support de cours Module LCS 2ème année Télécom section B 2015-2016
3. Dépassement (overflow)
Dans chacun des exemples d'addition et de soustraction que l'on vient d'étudier, les nombres
que l'on a additionnés étaient constitués à la fois d'un bit de signe et de 7 bits de grandeur. Les
réponses aussi comportaient un bit de signe et 7 bits de grandeur. Dans tous les cas étudiés, la
grandeur de la réponse ne dépassait jamais la capacité des 7 bits. Voyons l'addition de +99 à +38.
Le bit de signe de la réponse est celui d'un nombre négatif, ce qui est manifestement une
erreur. La réponse devrait être +137. Étant donné que la grandeur est 137, il faut plus de 7 bits pour
l'exprimer, et il y a donc un dépassement (overflow) sur le rang du bit de signe. Une condition de
dépassement donne toujours lieu à un résultat inexact.
En additionnant deux nombres de signes différents, il ne peut pas y avoir de dépassement, par
contre lorsqu'on additionne deux nombres de même signe, on a un dépassement si le signe du résultat
est différent du signe des deux nombres additionnés. Dans un ordinateur, il existe un circuit
spécialement conçu pour détecter les conditions de débordement et pour indiquer que la réponse est
fausse.
On multiplie les nombres binaires de la même façon qu'on multiplie les nombres décimaux. En
réalité, le processus est plus simple car les chiffres du multiplicateur sont toujours 0 ou 1, de sorte
qu'on multiplie toujours par 0 ou par 1. Voici un exemple de multiplication de nombres binaires non
signés.
Dans cet exemple, les nombres à multiplier sont en notation binaire exacte et il n'y a pas de bit
de signe. La marche à suivre est exactement la même que pour les multiplications décimales.
La plupart des machines numériques ne peuvent additionner que deux nombres binaires à la
fois. C'est la raison pour laquelle les produits partiels d'une multiplication ne peuvent être additionnés
ensemble en une seule fois. Ils sont plutôt additionnés deux par deux, c'est-à-dire que le premier
est additionné au second, que leur somme est additionnée au troisième et ainsi de suite.
17
Support de cours Module LCS 2ème année Télécom section B 2015-2016
Multiplication en complément à 2
Si les deux nombres multiplier sont positifs, ils sont déjà dans en notation binaire exacte et ils
sont multipliés tels quels. Le produit résultant est évidemment positif et son bit de signe est 0.
Quand les deux nombres sont négatifs, ils sont donc écrits dans la notation en complément à 2.
Chacun de ces nombres est complémenté à 2 pour obtenir un nombre positif et ce sont les résultats de
ces complémentations qu'on multiplie. Le produit est un nombre positif dont le bit de signe est 0.
Quand un des nombres est positif et que l'autre est négatif, le nombre négatif est d'abord
complémenté à 2 pour obtenir une grandeur positive. Le produit est exprimé selon la notation en
grandeur exacte. Cependant, le produit doit être négatif car les nombres à multiplier sont de signes
opposés.
5. Division binaire
La division d'un nombre binaire (le dividende) par un autre (le diviseur) est identique à la
division de deux nombres décimaux. En réalité, la division en binaire est plus simple puisque pour
déterminer combien de fois le diviseur entre dans le dividende, il n'y a que 2 possibilités 0 ou 1.
La division de nombres signés s'effectue de la même façon que la multiplication. Les nombres
négatifs sont complémentés pour obtenir des nombres positifs puis la division est effectuée. Si le
dividende et le diviseur sont de signes opposés, le quotient est complémenté à 2 pour obtenir un
nombre négatif, puis on lui ajoute un bit de signe de 1. Si le dividende et le diviseur ont le même signe,
le quotient est laissé sous sa forme positive et on lui ajoute un bit de signe de 0.
6. Addition en BCD
0000 et 1001. L'addition de nombres décimaux exprimés sous forme BCD se comprend mieux en
étudiant deux cas qui peuvent survenir quand on additionne deux chiffres décimaux.
18
Support de cours Module LCS 2ème année Télécom section B 2015-2016
L'addition est effectuée comme une addition binaire normale et la somme est 1001, soit le code
BCD de 9.
Dans cet exemple. Les codes de 4 bits associés à 5 et à 3 sont additionnés selon les règles
binaires pour donner 1000, ce qui est le code BCD de 8. De même, l'addition des chiffres décimaux de
second rang donne en binaire 0 111, ce qui est le code BCD de 7. Le total est 0111 1000, soit le code
BCD de 78.
Dans les exemples précédents, aucune somme de deux chiffres décimaux ne dépassait 9; donc,
il n'y a pas eu de reports décimaux. Dans cette situation l'addition BCD est un processus direct
équivalent à l'addition binaire.
Additionnons 6 et 7 en BCD:
La somme 1101 n'existe pas dans le code BCD; il s'agit de l'une des six représentations codées
de 4 bits interdites ou non valides. Cette représentation est apparue parce qu'on a additionné deux
chiffres dont la somme dépasse 9. Dans un tel cas, il faut corriger la somme en additionnant 6 (0110)
afin de prendre en considération le fait qu'on saute six présentations codées non valides:
19
Support de cours Module LCS 2ème année Télécom section B 2015-2016
L'addition des codes de 4 bits pour 7 et 5 produit une somme non valide que l'on corrige en
additionnant 0110. Notez que ceci produit un report de 1, qui est ajouté à la somme BCD des chiffres
du second rang.
Exercices :
20
Support de cours Module LCS 2ème année Télécom section B 2015-2016
d) 16 e) 80 f) 2560
10 10 10
21
Support de cours Module LCS 2ème année Télécom section B 2015-2016
22
Support de cours Module LCS 2ème année Télécom section B 2015-2016
18) Voici la représentation en complément à 2 des nombres décimaux suivant, trouver la valeur
décimale correspondante.
19) Quel est l`intervalle de valeurs décimales signées qu'on peut représenter sur un format de 6
bits puis sur un format à 8 bits y compris le bit de signe ?
20) Réaliser les opérations suivantes avec la notation en complément à 2.Utiliser le format d'un
octet pour représenter chaque nombre (y compris le bit de signe). Vérifier les résultats par
conversion de la réponse en décimal :
Références
M. Aumiaux, Logique arithmétique et techniques synchrones, 1ère partie : Arithmétique binaire et décimale,
Enseignement de l’électronique, Editions Masson, 1996.
M. Gindre et D. Roux, Electronique numérique : logique combinatoire et technologie, cours et exercices, McGraw-
Hill, Paris, 1987.
J.-C. Lafont et J.-P. Vabre, Cours et problèmes d’électronique numérique, Editions Ellipses, 1986.
J.-M. Muller, Arithmétique des ordinateurs, opérateurs et fonctions élémentaires, Etudes et recherches en
informatique, Editions Masson, 1989.
J.-L. Danger, C. Degois, A. Galisson, J. Leroux, D. Roux, Composants et fonctions de l’électronique numérique, cours,
polycopié Télécom Paris, 1994.
R. K. Dueck & K. J. Reid. Digital Electronics.© 2012 Delmar, Cengage Learning.
Roger L. Tokheim, M.S. Theory and problems Of Digital principles. Schaum’s Outline Series Mcgraw-Hill. third
Edition.1994.
J-M. Poitevin. Aide-mémoire Électronique Analogique Et Numérique. Editions Dunod, 2e Editino, 2008.
R. B. Reese. Microprocessors From Assembly Language To C Using The Pic18fxx2® Mississippi State University
Da Vinci Engineering Press. 2005
23