Vous êtes sur la page 1sur 23

Support de cours Module LCS 2ème année Télécom section B 2015-2016

Chapitre 1 : Systèmes de numération, Codage et


Opérations arithmétiques

Systèmes de numération, Codage


1. Variables et mots

• Variable discrète :

Une variable discrète est une variable qui prend ses valeurs dans un ensemble S de cardinalité
C finie, non vide.

• Variable binaire (ou variable commutation) :

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 variable " a " est binaire : S = {0,1} a∈ S a = 0 OU a=1

• Combinaison de « n ›› variables discrètes :

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

Exemples : ordinateur, 2005, XXVIII

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

Si on prend n variables binaires, on aura 2n combinaisons possibles, c`est à dire 2n écritures


différentes de mots.
Exemple:

Avec n= 3, on a 23 = 8 combinaisons: 000, 001, 010, 011,100,101,110,111

1
Support de cours Module LCS 2ème année Télécom section B 2015-2016

2. Numération

• La numération permet de représenter un mot (ou nombre) par la juxtaposition ordonnée de


variables (ou symboles) pris parmi un ensemble. Connaître la numération revient à connaître le
mécanisme qui permet de passer d'un mot à un autre (comptage, opération)

• Les systèmes de numération les plus courants sont :

- Système décimal : il comprend 10 symboles appelés chiffres : {0,l,2,3,4,5,6,7,8,9}


- Système binaire : il comprend 2 symboles appelés BIT (Binary digIT) : 0 et l
- Système octal : il utilise 8 symboles qui sont les chiffres de 0 à 7,
- Système hexadécimal : 16 symboles : Les chiffres de 0 à 9 et les lettres A, B, C, D, E, F
• Le nombre de symboles que possède le système de numération est appelé Base
• Lorsqu'un mot (ou nombre) est écrit, la position respective des symboles détermine leurs
poids.
• Le système décimal, appelé aussi système à base 10, est dit à poids positionnels : c`est à dire
que la valeur d'un chiffre dépend de sa position (appelée rang) dans le nombre :

..., centaines, dizaines, unités, dixiémes, centièmes,


Exemple :
742,59 = 7x(100) + 4x(10) + 2x(1) + 5 x 0,1 + 9x 0,01
ou encore: 742,59 = 7x102 + 4x101 + 2x100 + 5x10-1 + 9x10-2

- 7 représente le chiffre de poids fort (ou digit le plus significatif),


- 9 est le chiffre de poids faible (ou digit le moins significatif),
- Les poids des rangs sont des puissances de 10 (système décimal)

3. Codage

• Définition de code et codage:

Code : un ensemble de mots auxquels on confère une signification (convention)pour


représenter une catégorie de messages ou de concepts. Un code est binaire s’il ne
contient que des mots binaires.
Exemples : Gray, DCB, Huffmann, ...

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.

• Ecriture dans une base B :

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

- Cette forme est appelée forme polynomiale.


- L'élément ai est le symbole de rang i et son poids est Bi.
- an-1 est le symbole le plus significatif (de poids le plus fort)
- a0 est le symbole le moins significatif (de poids le plus faible)
- Les termes bi sont appelés coefficients de pondération ou Poids
- N est codé sur n bits

Tout entier décimal N peut s'écrire dans une base b quelconque. b est la cardinalité de S

Un nombre N s'écrit en juxtaposant n symboles :

N = (an-1 an-2............a0)b où les ai ∈ S 0 ≤ ai ≤ b-1

• 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 >›

• Exemple : mot de 4 bits (quartet ou nibble en anglais) :

(1101)2 =1x23 +1x22 + 0x21+1x20


(1101)2 =1x8 +1x4 + 0x2 +1x1 = 13

- Le nombre binaire 1 101 représente le nombre décimal 13


- le chiffre l à gauche représente le bit de poids fort ( Most significant bit)
- le chiffre 1 à droite représente le bit de poids faible (least or Low significant bit)
- Les poids des rangs sont des puissances de 2
- On dit que le mot de 4 bits est pondéré 8-4-2-1

3
Support de cours Module LCS 2ème année Télécom section B 2015-2016

• Comptage binaire :

Si on utilise 4 bits pour coder les nombre décimaux :

- Il existe 16 combinaisons (24=l6)


- On peut alors compter de 0 à 24 - 1 = 15
- Le bit de poids faible (celui de droite) sera pondéré 20 = 1
- Le bit de poids fort (celui de gauche) sera pondéré 23 = 8

Tableau de la suite des nombres binaires :

• Méthodes de codage d'un nombre N en 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

Exemple : On veut coder 18

⇒ Il nous faut 5 bits pour coder le nombre 18 selon le format: 16 8 4 2 1

18= (10010)2 1 0 0 1 0

Méthode 2 : Méthode des divisions euclidiennes successives

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.

Exemple 1 : conversion de N(10) = 52 en base 2 Exemple 2 : On veut coder 18

• 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.

Exemple : conversion de N(10)


(10) = 12,925 en base 2
• partie entière : 12(10) = 1100(2)
• partie fractionnaire :

Finalement 12,925(10) = 1100,111...(2)

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:

Mot octal de 3 chiffres. Il sera pondéré 82-81-80 soit : 64-8-1


(721)8 = 7x82 + 2x81 + 1x80
(721)8 = 7x64 + 2x8 +1x1 = 465

Le nombre (721)8 représente le nombre décimal 465

• Codage d'un nombre N en octal :

Comme pour la conversion en binaire, on effectue ici la méthode des divisions euclidiennes
successives par 8

Exemple : convertir le nombre décimal 99 en octal


99 = 8 x 12 + 3 (chiffre de poids faible)
12 = 8 x 1 + 4
1 = 8 x 0 + 1 (chiffre de poids fort)

⇒ 99 = (143)8

• Passage du Binaire en Octal ( Encodage) :

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

Exemple 2 : soit le nombre binaire 111011 1

- Il faut regrouper 3 bits sur ce mot à partir de la droite: 1 110 111


- On complète alors par des zéros à gauche pour avoir 3 bits : 001 110 111
- Ce qui donne en tenant compte de la pondération 4-2-1 des bits respectifs:

D'où le résultat: (l110111)2 = (167)8

Exemple 3 : conversion de N(10) = 0,45 en base 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:

Mot hexadécimal de 4 symboles. Il sera pondéré 163-162-161-160 soit 1 4096-256-16-1


(20AC)16 = 2x163 + 0x162 + Ax161 + Cx160
(20AC)16 = 2x 4096 + 0x 256 + 10x 16 + 12x l = 8364
Le nombre (20AC)16 représente le nombre décimal 8364

• Codage d'un nombre N en hexadécimal :

Comme pour la conversion en binaire, on effectue ici la méthode des divisions euclidiennes
successives par 16

Exemple : convertir le nombre décimal 92 en hexadécimal

92 = 16 x 5 + 12 (chiffre de poids faible = C)


5 = 16 x 0 + 5 (chiffre de poids fort)
⇒ 92 = (5C)16

• Passage du Binaire en Hexadécimal (Encodage) :

⇒ 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

• Conversion d’une base b1 à une base b2

• 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 .

7. Représentation binaire des nombres signés

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.

Si le bit de poids fort est à "0" le nombre est positif.


Si le bit de poids fort est à "1" le nombre est négatif.

Nombres de combinaisons, de valeurs négatives et positives :

- avec 4 bits : il y a 16 combinaisons différentes de -8 à +7


- avec 8 bits : il y a 256 combinaisons de -128 à +127

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

7.2. Représentation en complément à 2

Le complément à 2 est le mode de représentation le plus utilisé en arithmétique binaire et


donc dans les ordinateurs pour coder les nombres entiers.
Dans cette représentation, les nombres positifs se représentent par leur valeur binaire
naturelle. Par exemple +6 est représenté par 0000 0110 sur un format de 8 bits.

8
Support de cours Module LCS 2ème année Télécom section B 2015-2016

La représentation des nombres négatifs s’obtient comme suit :

• On part de la représentation binaire naturelle de l’opposé arithmétique du nombre à coder


(nombre positif),

• On calcule son complément à 1 (CA1) ou complément restreint. Celui-ci est obtenu en


inversant tous ses bits,
• On en déduit son complément à 2 (CA2) ou complément vrai en ajoutant 1 au niveau du
LSB.
Exemple : représentation de -5 en CA2 sur un format de 8 bits
- Représentation binaire naturelle de +5 : 5 = 0000 0101,
- CA1 de +5 = 1111 1010,
- CA2 de +5 : −5 = 1111 1011.

La représentation en complément à 2 présente les caractéristiques suivantes :

• 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

8. Classification des codes binaires

L’ensemble des codes binaires peuvent être regroupés en deux classes : les codes pondérés et
les codes non pondérés.

8.1 Codes 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.

1) Le code binaire pur et ses dérivés (octal, hexadécimal)

Ce sont les codes utilisés en arithmétique binaire et qui ont été étudiés précédemment

2) Le code DCB (Décimal Codé Binaire) ou BCD (Binary-Coded Decimal)

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.

0:0000 1 : 0001 2: 0010 3: 0011 4: 0100


5:0101 6 : 0110 7: 0111 8: 1000 9: 1001 10 à 15: interdit

- Exemple : Codage d'un entier 234 en BCD : (0010 0011 01O0)BCD

10
Support de cours Module LCS 2ème année Télécom section B 2015-2016

- Exemple :

8.2 Codes non pondérés

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.

1) Code excédent 3 ou excess 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.

2) Code binaire réfléchi ou code de Gray

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 :

Règle de formation du code Gray à partir du binaire pur

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).

ou plus simplement en appliquant la relation suivante:

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

et inversement en appliquant la relation suivante:

Bn=B(n+1) ⊕ Gn
pour n= 0100 en code Gray correspond N = 0111 en binaire pur

9. Récapitulatif de différents codes

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.

Les codes Excédent 3 et AIKEN ne sont pratiquement plus utilisés.

Les codes alphanumériques

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 caractère A par exemple à pour code 65 soit 01000001 en binaire.


Le caractère f : 102
le point d'interrogation ? : 63
Le chiffre 2 : 50

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.

Pour un nombre binaire de n bits, 2n combinaisons différentes sont possibles et on compte de


0à2 n – 1.

Exemples

- avec 4 bits : il y a 16 combinaisons différentes de 0 à 15


- avec 8 bits : il y a 256 combinaisons de 0 à 255
- avec 10 bits : il y a 1024 combinaisons de 0 à 1023
- avec 16 bits : il y a 65536 combinaisons de 0 à 65535
- avec 20 bits : il y a 1 048 576 combinaisons
- avec 32 bits : il y a 4 294 967 296 combinaisons

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

La valeur négative la plus grande, pour un octet, est :


10000000 = -28-1 = -27 = -128
La valeur positive la plus grande, pour un octet, est :
01111111 = |10000000| - 1 = -27 -1 = 127
Nous avons donc bien 256 valeurs différentes possibles. Par conséquent, on peut affirmer que
l'intervalle complet des valeurs que l'on peut écrire en complément à 2 au moyen de N bits :

Dans le cas général d’une représentation sur N bits, nous avons :

• nombre de valeurs différentes 2N


• représentation du zéro : 00000000
• valeur négative 10000000 = -128
• valeur positive 01111111 = +127

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.

1.1. Cas 1: deux nombres positifs

L'addition de deux nombres positifs est immédiate. Soit l'addition de +9 et +4:

Remarquez que les bits de signe sont 0 et que celui de la somme est aussi 0, ce qui indique un
nombre positif.

1.2. Cas 2: nombre positif et nombre négatif plus petit

Soit l'addition de +9 et de -4. Rappelez-vous que -4 est exprimé dans la notation en


complément à 2. Donc +4 (00100) doit être converti en -4 (11100)

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

1.3. Cas 3: nombre positif et nombre négatif plus grand.

Soit l'addition de -9 et de +4:

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.

1.4. Cas 4: deux nombres négatifs

Le résultat définitif est de nouveau négatif (-13).

1.5. Cas 5: nombres égaux et opposés

Le résultat est évidemment 0, comme on s'y attendait.

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:

Examinons la soustraction suivante: +9 - (+4).


(+ 9) 0000 1001
(+ 4) 0000 0100
Changez le nombre à soustraire pour sa version en complément à 2 (1111 1100), ce qui
représente - 4. Maintenant additionnez-le premier nombre.

16
Support de cours Module LCS 2ème année Télécom section B 2015-2016

Quand on complémente à 2 le nombre à soustraire, on obtient en réalité -4, de sorte qu'on


additionne +9 à -4, ce qui est équivalent à soustraire de (+9) le nombre (+4). En définitive, toute
opération de soustraction se résume à une addition lorsqu'on utilise la notation en complément à 2.

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.

4. Multiplication de nombres binaires

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.

Voici deux exemples de divisions:

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

De nombreux ordinateurs représentent les nombres décimaux au moyen du code BCD.


Rappelons que ce code fait correspondre à chaque chiffre décimal un code de 4 bits compris entre

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

6.1. Somme égale ou inférieure à 9

Additionnons 5 à 4 en utilisant pour chacun leur représentation BCD

L'addition est effectuée comme une addition binaire normale et la somme est 1001, soit le code
BCD de 9.

Voici un autre exemple: additionnons 45 à 33.

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.

6.2. Somme supérieure à 9

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

Comme on le montre ci-dessus, l'addition de 0110 à la somme non valide donne la


représentation BCD exacte. Notez qu'un report a lieu sur le chiffre décimal de deuxième rang. Il est
obligatoire d'additionner 0110 quand la somme de deux chiffres décimaux dépasse 9.

Voyons un autre exemple: additionnez 47 à 35 en BCD:

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.

7. Opérations arithmétiques en octal

Le résultat final : (5036)8

8. Opérations arithmétiques en hexadécimal

Le résultat final : (C2B6)16

Exercices :

1. Convertir les binaires suivants en décimal


a) 001100 b) 000011 c) 011100
2 2 2

d) 111100 e) 101010 f) 111111


2 2 2

20
Support de cours Module LCS 2ème année Télécom section B 2015-2016

g) 100001 h) 111000 i) 11110001111


2 2 2

j) 11100.011 k) 110011.10011 l) 1010101010.1


2 2 2

2. Convertir les décimaux suivants en binaire


a) 64 b) 100 c) 111
10 10 10

d) 145 e) 255 f) 500


10 10 10

g) 34.75 h) 25.25 i) 27.1875


10 10 10

3. Convertir les octaux suivants en décimal


a) 42 b) 376 c) 1057
8 8 8

d) 11.11 e) 37.123 f) 45.765


8 8 8

4. Convertir les octaux suivants en binaire


a) 3 b) 72 c) 16.3
8 8 8

d) 20.1 e) 37.6 f) 11.4


8 8 8

5. Convertir les binaires suivants en octal


a) 011 b) 111000 c) 111.001
2 2 2

d) 1011.011 e) 110110.11011 f) 11000.1001


2 2 2

6. Convertir les hexadécimaux suivants en décimal


a) C b) 67E c) D3.E
16 16 16

d) 1111.1 e) 888.8 f) EBA.C


16 16 16

7. Convertir les décimaux suivants en hexadécimal


a) 8 b) 10 c) 14
10 10 10

d) 16 e) 80 f) 2560
10 10 10

g) 3000 h) 62500 i) 204.125


10 10 10

j) 255.875 k) 631.25 l) 10000.00390625


10 10 10

8. Convertir les hexadécimaux suivants en binaire


a) B b) E c) 1C
16 16 16

d) A64 e) 1F.C f) 239.4


16 16 16

g) AB.F h) 123.8 i) 2AB.C4


16 16 16

21
Support de cours Module LCS 2ème année Télécom section B 2015-2016

9. Convertir les BCD suivants en décimal


a) 00010111 b) 10000110 c) 010101000011
d) 00110010.10010100 e) 0001000000000000.0101 f) 1010
10. Convertir les décimaux suivants en BCD
a) 6 b) 13 c) 99.9
d) 872.8 e) 145.6 f) 21.001
11. Convertir les décimaux suivants en XS3
a) 9 b) 18 c) 37
d) 42 e) 650 f) 689
12. Convertir les BCD suivants en XS3
a) 0001 b) 0111 c) 01100000
d) 00101001 e) 10000100 f) 00111100
13. Convertir les XS3 suivants en décimal
a) 0011 b) 01100100 c) 11001011
d) 10011010 e) 10000101 f) 00010000
14. Convertir les binaires suivants en code Gray
a) 1010 b) 10000 c) 10001
d) 10010 e) 10011 f) 11100
15. Convertir les codages Gray suivants en binaire
a) 0100 b) 11111 c) 10101
d) 110011 e) 11100 f) 101010

16) Effectuer en binaire les opérations suivantes :

17) En utilisant la représentation en complément à 2, représenter sur un format de 8 bits les


nombres décimaux suivants :

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 :

a)45-17 b)-15-28 c)12-42

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

Vous aimerez peut-être aussi