Phy 204
Phy 204
Objectifs :
Connaître les différents systèmes de numération,
Savoir convertir un nombre décimal dans différentes bases,
Savoir convertir un nombre d’une base à une autre,
Savoir effectuer des opérations arithmétiques binaires et dans différentes bases.
Introduction
Depuis la nuit des temps, l'Homme a eu besoin de compter et de calculer. Selon les époques ou
civilisations, divers systèmes de numération ont été mis en place puis abandonnés.
A l'heure actuelle, nous utilisons le système de numération décimal. Ce système s'est imposé en
Europe à partir du 10ème siècle. Aujourd'hui le système décimal est quasiment universel. Cependant
il est mal adapté au codage des informations pour un ordinateur ; on lui préfère le système binaire.
- Dans toute numération, il faut distinguer les chiffres (ou symboles) et les nombres.
- Un nombre est le résultat du comptage d'un ensemble d'objets, d'animaux, de personnes ... Un
nombre s'écrit avec un ou plusieurs chiffres (ou symboles).
- Dans le système décimal, les nombres sont écrits à partir des dix chiffres : 0, 1, 2, 3, 4, 5, 6, 7, 8
et 9.
Exemples :
- une année comporte douze mois : 12 est un nombre comportant deux chiffres : 1 et 2.
- l'année 2017 est un nombre comportant 4 chiffres (2, 0, 1 et 7).
- une semaine contient 7 jours : 7 est un nombre qui s'écrit avec un seul chiffre (7).
Différentes techniques de numération ont dû être mises au point afin de dénombrer des ensembles.
Il existe deux grandes techniques de numération : la numération additive et la numération de
position (ou positionnelle).
Dans la numération additive, chaque symbole a une valeur propre et il suffit d'ajouter les
valeurs des symboles pour obtenir le nombre.
Autre définition :
Un système de numération est dit additif lorsqu'il utilise des signes qui représentent chacun
une valeur et lorsque, pour connaître la valeur du nombre ainsi représenté, il
faut additionner les valeurs des différents signes.
Les plus anciens systèmes de numérations connus sont additifs. Ils ne le sont parfois qu'en
partie, combinant ce système avec un autre. Ils ont été supplantés par l'écriture décimale
positionnelle moderne qui permet d'effectuer plus facilement la grande majorité des calculs.
1
Dans la numération de position, la valeur des symboles change en fonction de leur place
dans le nombre.
Les bases utilisées en électronique numérique, que ce soit pour l'arithmétique ou pour représenter
de manière compacte des nombres binaires de grande longueur, sont les bases
- 2 (binaire)
- 8 (octal)
- 10 (décimal)
- 16 (hexadécimal), noté aussi H
Ce système de numération, usuel dans la vie quotidienne, dispose de dix symboles (les chiffres) :
0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
On travaille alors en base 10.
La numération en base deux (ou numération binaire) utilise deux symboles 0 et 1. Cette base est
très commode pour distinguer les deux états logiques fondamentaux.
L'unité de mesure de la mémoire est l'octet. Un groupe de 1024 octets est appelé kilo-octet, bien
que le kilo corresponde en physique à 1000. L'abréviation de kilo-octet est ko (avec un petit k et un
petit o).
On trouve d'autres multiples, à savoir le Méga-octet (Mo qui fait 1024 ko), le Giga-octet (Go qui
fait 1024 Mo) et le Tera-octet (To, égal à 1024 Go).
En anglais un octet est appelé "byte" (ce qui se dit "baïte"). Un kilo-octet se dit donc "kilobyte". Et
l'abréviation devient kB (avec un petit k et un grand B).
Il existe d’autres systèmes de numération tels que la numération duodécimale (ase 12), vicésimale
(base 20) et sexagésimal (base 60)
3
La méthode de décomposition par divisions successives consiste à diviser le nombre plusieurs fois
(si nécessaire) dans la base choisie jusqu'à obtenir un quotient nul.
Les restes successifs des divisions, pris dans leur ordre inverse, forment le nombre désiré.
N = (101011)2
Exemples :
4
III.2. Toutes les conversions vers le décimal
Dans tous les cas, il n’y a rien de particulier à ajouter. Le principe de conversion est directement
attaché à la manière dont on écrit un nombre dans une base donnée.
(N)B = an-1.Bn-1 + … + a0.B0 où B est codé en décimal
La conversion est réalisée automatiquement dans la mesure où le résultat est écrit directement dans
la base dix.
Un nombre hexadécimal est "découpable" en quartets facilement codables en binaire. Donc, pour
convertir du binaire en hexadécimal, on divise le nombre binaire en "tranches de quatre" en partant
de la droite. Chacun des "paquets" est ensuite converti en hexadécimal. Cette méthode revient à
fractionner en décompositions successives.
Explication : la mise en paquet revient à effectuer une série de factorisations partielles de la base
de destination. Ici c'est 16 = 24. Les résidus constituent les chiffres de la conversion. Dans
l'exemple précédent, cela donne :
(110101110101)2 = 1.211 +1.210 + 0.29 + 1.28 + 0.27 + 1.26 + 1.25 + 1.24 + 0.23 + 1.22 + 0.21 + 1.20
= {1.23+1.22+0.21+1.20}.(24)2 + {0.23+1.22+1.21+1.20}.24 + {0.23+1.22+0.21+1.20}
= 13.162 + 7.161 + 5.160
= D75H
C’est le processus directement inverse, on écrit chaque quartet sur 4 bits en complétant
éventuellement avec des zéros.
Exemple : BC34H = (1011[B] 1100[C] 0011[3] 0100[4])2 = (1011 1100 0011 0100)2.
Exercice d’application : Convertir en binaire EE10AH, AA098CH et IEEE2009H.
5
Utilité du système hexadécimal
La facilité avec laquelle se font les conversions entre les systèmes binaire et hexadécimal explique
pourquoi le système hexadécimal est devenu une façon abrégée d'exprimer de grands nombres
binaires. Dans un ordinateur, il n'est pas rare de retrouver des nombres binaires ayant jusqu'à 64
bits de longueur. Ces nombres binaires, comme nous le verrons, ne sont pas toujours des valeurs
numériques, mais peuvent correspondre à un certain code représentant des renseignements non
numériques. Dans un ordinateur, un nombre binaire peut être :
1) un vrai nombre ;
2) un nombre correspondant à un emplacement (adresse) en mémoire ;
3) un code d’instruction ;
4) un code correspondant à un caractère alphabétique ou non numérique ; ou
5) un groupe de bits indiquant la situation dans laquelle se trouvent des dispositifs internes et
externes de l'ordinateur.
Quand on doit travailler avec beaucoup de nombres binaires très longs, il est plus commode et plus
rapide d'écrire ces nombres en hexadécimal plutôt qu'en binaire. Toutefois, ne perdez pas de vue
que les circuits et les systèmes numériques fonctionnent exclusivement en binaire et que c'est par
pur souci de commodité pour les opérateurs qu'on emploie la notation hexadécimale.
Symbole octal 0 1 2 3 4 5 6 7
Equivalent binaire 000 001 010 011 100 101 110 111
Au moyen de ce tableau, tout nombre octal est converti en binaire par la transformation de chacun
des chiffres. Par exemple, la conversion de (472)8 va comme suit :
( 4 7 2 )8
100 111 010
6
Donc le nombre octal (472)8 est équivalent au nombre binaire 100111010.
La conversion d'un nombre binaire en un nombre octal est tout simplement l'inverse de la marche à
suivre précédente. Il suffit de faire avec le nombre binaire des groupes de trois bits en partant du
chiffre de poids le plus faible, puis de convertir ces triplets en leur équivalent octal (voir tableau ci-
dessus). À titre d'illustration, convertissons (100111010)2 en octal.
100 111 010
( 4 7 2 )8
Parfois, il arrivera que le nombre binaire ne forme pas un nombre juste de groupes de trois. Dans
ce cas, on pourra ajouter un ou deux zéros à gauche du bit de poids le plus fort pour former le
dernier triplet (si on lit de droite à gauche). Voici une illustration de ceci avec le nombre binaire
11010110.
011 010 110
( 3 2 6 )8
Notez l'ajout d'un zéro à gauche du bit de poids le plus fort pour obtenir un nombre juste de
triplets.
Les opérations se font exactement comme dans le système décimal sauf qu’ici le rôle de la dizaine
est joué par la base B
7
Pour écrire un nombre rationnel dans un système de base B, on transcrit numérateur et
dénominateur en base B et on pose la division.
Pour convertir un nombre décimal à virgule dans une base B quelconque, il faut :
Convertir la partie entière en effectuant des divisions successives par B (comme nous l’avons vu
précédemment).
Convertir la partie fractionnaire en effectuent des multiplications successives par B et en
conservant à chaque fois le chiffre devenant entier.
Autrement dit :
Les coefficients a1, a2, a3 , ... sont obtenus par divisions successives par B.
La conversion d'une base B vers la base 10 se fait, comme pour les entiers (vu plus haut), en
attribuant le poids de chaque chiffre.
Exemples :
9
ou divisions. Par contre dans le cas d’additions de nombres négatifs (ou soustractions) il faut
d’abord comparer les valeurs absolues des nombres à additionner pour connaître le signe du
résultat.
Deux autres façons de coder un nombre négatif est l’utilisation du complément restreint (CR) et
du complément vrai (CV).
On considère deux types de représentations. Dans chacune d’elles les performances sont définies
par :
- La RESOLUTION qui est la différence entre deux nombres consécutifs,
10
- La DYNAMIQUE qui est la différence entre le nombre le plus grand et le plus petit que l’on
peut traiter dans un format donné.
Un tel nombre est constitué d’un bloc d’éléments binaires comme un entier. Ce bloc représente un
nombre fractionnaire si l’on connaît la place de la virgule (qui est positionnée par l’opérateur en
fonction des besoins). Ce positionnement doit rester fixe pendant toute la conduite du calcul. Ainsi
la virgule délimite deux zones : la partie entière et la partie fractionnaire du nombre.
Les éléments situés à droite de la virgule sont associés à des puissances négatives de la base B.
Exemple en complément à 2
A cause de la position fixe de la virgule, cette représentation est bien adaptée à l’addition mais pas
à la multiplication (qui provoque un décalage de la virgule) d’où l’utilisation d’une autre
représentation.
La position de la virgule est fixée arbitrairement à la 4ème case vers la gauche. La position de la
virgule n'est pas visualisée.
La case la plus à droite représente le poids 20 : ce qui est évidemment faux.
Cette représentation suppose la multiplication implicite de ce nombre par 2-3. Le terme -3 est
représentatif du positionnement fixe de la virgule. Il devra impérativement être mémorisé.
Ici on écrit les nombres sous la forme exponentielle telle que N = M.BE où B est la base, M la
mantisse et E l’exposant (ou la caractéristique).
Si E > 0 on peut représenter des nombres très grand et si E < 0 des nombres très petits et la
précision de la représentation dépend du nombre de bits de la mantisse.
La virgule est dite flottante pour la raison suivante : en notation pondérée courante, sa position
dépend de la valeur de l’exposant.
Exemple : 1001,11 ne suffit pas à définir totalement cette donnée car il n’y a aucune indication sur
la valeur du poids binaire affecté aux différents bits.
N = 1001,11.20 = 100,111.21 = 10,0111.22 = 1,00111.23 = 0,100111.24.
Les diverses opérations arithmétiques qui interviennent dans les ordinateurs et les calculatrices
portent sur des nombres exprimés en notation binaire. En tant que telle, l'arithmétique numérique
11
peut être un sujet très complexe, particulièrement si on veut comprendre toutes les méthodes de
calcul et la théorie sur laquelle elle s'appuie.
En ce qui nous concerne ici, nous allons concentrer nos efforts sur les principes de base qui nous
permettent de comprendre comment les machines numériques (c'est-à-dire les ordinateurs)
réalisent les opérations arithmétiques de base. Nous verrons comment effectuer manuellement les
opérations arithmétiques en binaire, par la suite nous étudierons les circuits logiques réels qui
matérialisent quelques unes de ces opérations dans un système numérique.
L'addition de deux nombres binaires est parfaitement analogue à l'addition de deux nombres
décimaux. En fait, l'addition binaire est plus simple puisqu'il y a moins de cas à apprendre.
Cependant, il n'y a que quatre cas, qui peuvent survenir lorsqu'on additionne deux chiffres binaires
et cela quel que soit le rang. Ces quatre cas sont :
0+0=0
1+0=1
1 + 1 = 10 = 0 + report de 1 sur le rang de gauche
1 + 1 + 1 = 11 = 1 + report de 1 sur le rang de gauche.
Le dernier cas ne se produit que lorsque, pour un certain rang, on additionne deux 1 plus un report
de 1 provenant du rang de droite.
Il n'est pas nécessaire d'étudier des additions ayant plus de deux nombres binaires, parce que dans
tous les systèmes numériques les circuits qui additionnent ne traitent pas plus de deux nombres à la
fois. Lorsque nous avons plus de deux nombres à additionner, on trouve la somme des deux
premiers puis on additionne cette somme au troisième nombre, et ainsi de suite. Ce n'est pas
véritablement un inconvénient, puisque les machines numériques modernes peuvent généralement
réaliser une opération d'addition en quelques nanosecondes.
L'addition est l'opération arithmétique la plus importante dans les systèmes numériques. Les
opérations de soustraction, de multiplication et de division effectuées par les ordinateurs ne sont
essentiellement que des variantes de l'opération d'addition.
12
b) 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.
Soit l'addition de -9 et de + 4 :
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 (le diminuteur) d'un autre nombre (le diminuande), la marche à
suivre est comme sui t:
c. Rappelez-vous que les deux nombres doivent avoir le même nombre de bits.
13
a) 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 4 bits de grandeur. Les réponses
aussi comportaient un bit de signe et 4 bits de grandeur. Tout report fait sur le bit de sixième rang
était rejeté. Dans tous les cas étudiés, la grandeur de la réponse ne dépassait jamais la capacité des
4 bits.
Voyons l'addition de + 9 à + 8.
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 +17. Étant donné que la grandeur est 17, il faut plus de 4 bits pour l'exprimer,
et il y a donc un dépassement (over flow) sur le rang du bit de signe. Une condition de
dépassement donne toujours lieu à un résultat inexact, et on la détecte en examinant le bit de signe
du résultat et en le comparant aux bits de signe des nombres additionnés. En additionnant deux
nombres de signes différents, il ne peu 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.
b) Multiplication en complément à 2
Dans les machines qui utilisent la notation en complément à 2, la multiplication est effectuée de la
même façon que quand le multiplicande et le multiplicateur sont exprimés en notation binaire
exacte. Si les deux nombres à multiplier sont positifs, ils sont déjà dans cette notation 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. Par conséquent, on complémente à 2 le produit et on ajoute le bit de signe 1.
La division d'un nombre binaire (le dividende) par un autre (le diviseur), comme on l’a déjà vu, 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.
Dans la plupart des ordinateurs modernes, les soustractions qui ont lieu durant une opération de
division sont généralement des soustractions avec complément à 2, c'est-à-dire on complémente à
2 le soustracteur puis on effectue l'addition.
14
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.
----------------------------------------------------------------------------------------------------------------------------- ------------------
EXERCICE N° 1
EXERCICE N° 2
EXERCICE N° 3
Réaliser les opérations suivantes :
11011 + 1101 ; 111010111 - 10111101 ;
1111 * 111 ; 10100/100.
EXERCICE N° 4
EXERCICE N°5
1. 010101011 + 100110101
2. 10100110 + 11011011
3. 011001011 + 000111101
4. 100010010 + 101001011.
EXERCICE N°6
Un magicien sorcier qui s’était transformé en poule lors d’une de ces expériences, savait compter
suivant un système de numération en base 5. Les cinq symboles qu’elle employait pour cela étaient
C, T, O, E et D.
Quelle valeur numérique précise donnait-elle à chacune de ces cinq lettres, sachant que pour
nommer l’entier 41346460, elle faisait COT COT CODET.
15
EXERCICE N°7
16
CHAPITRE 2 : CODAGE DES NOMBRES
I. GENERALITES
Un code constitue une correspondance entre les symboles et les objets à désigner. C’est un langage
composé de différents symboles ou mots.
Les codes sont des conventions d’organisation de caractères qui deviennent un langage (ou porteur
d’information).
Le codage est une opération permettant de transmettre une information de la meilleure façon
possible, à savoir :
La plus simple,
La plus rapide,
La plus sécurisée (confidentialité).
En d’autres termes :
Le codage est l'opération qui transforme une information (écriture décimal, position angulaire,
vitesse...) en écriture binaire dans un code de notre choix.
Quelques définitions
Un codeur fait correspondre à l’activation d’une entrée particulière, une combinaison de bits en
sortie (le circuit a donc une entrée et N sorties). Ainsi le codage 2n combinaisons en entrée nécessite
n bits en sortie.
Un décodeur réalise la fonction inverse, c’est-à-dire qu’il active une sortie particulière lorsqu’on
lui présente une combinaison donnée de bits en entrée (le circuit a donc N entrées et une sortie). C’est
le cas, par exemple, du clavier de porte automatique.
Un transcodeur est un circuit qui permet de passer d’un code à un autre (N entrées et N sorties).
1
Les codes du chapitre 1 sont pondérés c’est à dire dans une base de travail, la valeur d’un rang donné
est un multiple par la base de celle du rang inférieur.
Un code est dit « pondéré » quand il existe des nombres qui indiquent le poids en chiffres (binaires
dans le cas de la base 2) ; en multipliant ces nombres par les chiffres (binaires) correspondants, on
obtient l’équivalence décimale.
Tous les autres codes dans lesquels on ne peut pas repérer le poids des chiffres (binaires) sont appelés
« non pondérés ». Autrement dit que la position d’écriture ne correspond pas à un poids des autres.
Ces codes ne permettent d’effectuer des opérations arithmétiques.
Ils sont élaborés sur une base à développement mathématique complexe ou plus simplement sont
caractérisés par des tables faites spécialement.
Différents codes ont été imaginés, ayant diverses propriétés logiques et arithmétiques. Le choix de l'un
ou de l'autre type de code dépend exclusivement des applications auxquelles il est destiné.
Pour le code BCD (voire paragraphe suivant), par exemple, la longueur est m=4 et le nombre de mots
de code (mots utiles) N=10.
Il faut prendre en considération la différence entre un code complet et un code incomplet. Le code
complet contient tous les mots de code binaire ou combinaisons possibles. Par contre, le code
incomplet n'utilise qu'une partie des combinaisons possibles.
Le code binaire naturel et ses dérivées (octal et hexadécimal entre autres) répondent aux règles
classiques de l’arithmétique des nombres positifs, on peut donc calculer.
Les caractères sont des bits, les mots sont formés par une association ou combinaison de bits et avec
n bits nous pouvons former au maximum 2n mots.
Dans les systèmes numériques, l'entrée des données ne s'effectue pas en pur code binaire. Ce sont
plutôt des nombres décimaux codés en binaire (code BCD) qui sont utilisés. BCD (Décimal Codé en
Binaire) signifie que les nombres décimaux 0 à 9 sont représentés par un nombre binaire à plusieurs
chiffres.
A cet effet, il est possible de choisir n'importe qu'elle correspondance entre les nombres décimaux et
les nombres binaires.
2
II.2. Code "Décimal Codé Binaire" (DCB)
Chacun des 10 chiffres 0 à 9 peut être représenté dans le code binaire pur par un mot de quatre (4)
bits (tétrades).
Dans ce codage DCB (ou BCD en anglais : Binary Coded Decimal) chaque digit décimal est écrit en
binaire puis tous sont juxtaposés.
Cette représentation est commode pour traiter les nombres dans le mode de représentation le plus
adapté à l’opérateur humain (loi de l’affichage par exemple). Ce code est aussi appelé code 8421 ou
code 1248.
Le code DCB est un code incomplet car n’utilisant qu’une partie des combinaisons possibles (10 mots
de codes binaire sur 16).
Voici comment on peut effectuer l'addition en BCD. Si l'on additionne en arithmétique binaire les
codes BCD correspondant à des chiffres dont la somme ne dépasse pas 9, on aura évidemment un
résultat donnant la représentation correcte de la somme DCB. Par exemple, 45 + 31 donnent bien 76
:
Cependant, dès que la somme dépasse 9 dans un motif de 4 bits, il faut apporter une correction. Par
exemple, si on additionne 8 + 6, on obtient 1110, qui excède l'intervalle de définition d'un digit BCD.
On voit cependant que si on ajoute 6 à ce résultat, on obtient bien la représentation BCD de 14:
3
On effectue donc l'addition en motifs de 4 bits. Si le résultat dépasse 9 pour l'un ou plusieurs de ces
motifs, on leur ajoute 6 pour forcer une retenue et on obtient le résultat escompté en BCD :
Parmi les variétés de codes possibles, le code 2421 est aussi utilisé. Dans ce code, les poids affectés
aux variables binaires ne sont plus 8, 4, 2, 1 mais 2, 4, 2, 1.
La première représentation (en italique) est appelée code 2421, et la seconde (soulignée) est le code
2421 AIKEN ou simplement code AIKEN.
On remarque que le chiffre « 9 » est représenté par quatre (4) bits à 1 ==> donc on ne peut pas
représenter une valeur supérieure à 9 avec 4 bits en code 2421 contrairement au 8421 qui va jusqu’à
16.
On remarque aussi que pour les chiffres décimaux 0, 1, 2, 3 et 4 le code AIKEN correspond avec le
code BCD 8421, tandis que pour les chiffres décimaux 5, 6, 7, 8 et 9 il concorde avec les nombres 11,
12, 13, 14 et 15 du code binaire pur.
On remarque aussi que la dernière variable pondérée 2 dans le code AIKEN est égale à 0 si le
nombre est inférieur à 5 et est égale à 1 si le nombre est supérieur ou égal à 5.
4
III. CODES NON PONDERES
5
Dans ce code, un seul bit (ou digit) change entre deux valeurs adjacentes, c’est-à-dire entre deux
nombres décimaux successifs N et N+1. Il est employé dès que l’on doit représenter une évolution
réelle des variables où une seule change à un instant. De plus, on opère de telle façon que le bit de
transformation soit d’un poids faible. Ainsi si une erreur survient lors d’une transformation d’un
nombre à un autre, elle est ainsi minimisée.
Commençons par un exemple simple et établissons le code gray pour les 4 premiers chiffres
décimaux 0 à 3. Deux bits suffisent et les combinaisons en binaire BCD sont les suivantes :
Nous remarquons que pour aller du nombre (1)10 à (2)10 nous changeons les deux bits à la fois pour
passer de (01)2 à (10)2.
En code Gray, pour passer d'une ligne à la suivante, on inverse un seul bit de telle manière qu'il
soit le bit le plus à droite possible conduisant à un nouveau nombre. Ce qui donne les combinaisons
suivantes:
Le nom code binaire réfléchi vient d'une autre méthode de construction. Elle est plus pratique ou
plus visuelle quand au choix du bit à inverser lors du passage d'un nombre au suivant.
On établit un code de départ: zéro est codé 0 et un est codé 1 (1).Puis, à chaque fois qu'on a besoin
d'un bit supplémentaire (2), on symétrise les nombres déjà obtenus (comme une réflexion dans un
miroir)(3) et on rajoute un 1 au début des nouveaux nombres (4) et un zéro sur les anciens.
6
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 :
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 :
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). Nous avons alors : pour N = 0111 en binaire pur correspond n = 0100 en code
Gray.
7
III.2. Code complément à 9
Ce code concerne les chiffres de 0 à 9. A partir du binaire naturel, un nombre N (<9) est codé par le
binaire de (9-N)
Le code plus 3 (ou code excess 3) appelé aussi code STIBIZ du nom de son inventeur est un code non
pondéré issu du code 8421 auquel on ajoute systématiquement 3 à chaque chiffre.
Le code plus 3 est souvent utilisé sur des unités arithmétiques qui calculent en système numérique
décimal plutôt qu'en système binaire. Ce code permet d'effectuer les opérations arithmétiques
d'addition et de soustraction avec un minimum de fonctions logiques.
Le code plus 3 utilise les combinaisons de quatre chiffres du binaire pur compris entre les nombres
décimaux 3 et 12. Chaque nombre s'obtient en ajoutant 3 à chaque chiffre du nombre décimal et en
le codant en BCD 8421.
Dans ce système n'apparaissent pas les combinaisons 0000 et 1111. De plus ce code est auto
complémentaire.
Exemple :
Le complément de 7 à 9 est 2
7 = 1010
2 = 0101
8
III.4. Codes détecteurs et correcteurs d’erreurs ( codes redondants)
Il peut arriver que la transmission d’une information se fasse avec une ou plusieurs erreurs de bits
(changement d’un 0 en 1 ou 1 en 0). Et la "fausse" information est aussi vraisemblable que la "vraie"
donc dans ce cas l’erreur n’est pas décelable.
Ces codes permettent alors de détecter une erreur de bits et parfois même une correction de l’erreur.
Comme exemple, nous pouvons citer les codes p parmi n et le code de Hamming.
Pour lever cette contrainte, on peut imposer pour coder une information, l’utilisation d’un nombre
limité de combinaison de 0 et 1. On a ainsi une chance de déceler immédiatement la combinaison
erronée.
Le code le plus simple est le code détecteur d’erreur qu’on nomme contrôle de parité. Dans ce code
pour représenter les 10 chiffres décimaux (0 à 9), on retient un mot de 5 bits et on donne au 5 ème bit
la valeur 0 ou 1 de telle sorte que le nombre de 1 parmi les 5 variables soit toujours pairs (c’est le code
2 parmi 5)
Ici les mots peuvent avoir une signification non numérique. Afin de pouvoir transmettre ou stocker
tous les types de caractères alphanumériques ou autres, des codes conventionnels ont été établis.
Chaque caractère est associé à son équivalent en code numérique. Il existe de nombreux codes et nous
pouvons citer pour mémoire le code ASCII, l'EBCDIC, L'UNICODE, l'UTF8... Ce type de codes le plus
connu et le plus utilisé en informatique est le code ASCII (American Standard Code for Information
Interchange).
9
-----------------------------------------------------------------------------------------------------------------------
EXERCICE N° 1
2- Les deux nombres ci-dessous sont des nombres DCB, déterminer leur équivalent décimal.
1001011101010010 et 0110000100
EXERCICE N° 2
EXERCICE N° 3
10
CHAPITRE 3 : OPERATEURS LOGIQUES ELEMENTAIRES
Objectifs :
I. DEFINITIONS
En supposant nos montages alimentés avec une différence de potentiels égale à VCC, les deux valeurs
possibles sont : le 0 volt (la masse) et le +VCC, car nous travaillons dans une logique dite positive.
Ces deux valeurs possibles sont associées à des états logiques appelés :
Une variable binaire (ou logique) est une variable qui peut prendre, à tout instant, une valeur unique
dans l’ensemble {0, 1}.
Exemple :
1
Un ensemble ordonné de n variables binaires est un mot binaire de n digits (ou bits).
Exemple : un mot binaire à deux variables logiques est noté (a, b) ou ab.
On appelle variable tout terme indéterminé qui peut être remplacé par divers termes déterminés
qui en sont les valeurs.
Une fonction logique f est une fonction qui à un mot binaire y = xn…x1, associe une variable binaire z.
C’est une combinaison de plusieurs variables logiques donnant l’état d’une variable dite de sortie
associée. Cette combinaison est réalisée à l’aide d’opérateurs logiques.
de sortie A.
Une fonction logique est combinatoire si et seulement si l’état de la sortie à chaque instant ne dépend
que de l’état du mot d’entrée à cet instant. Dans ce cas la fonction est indépendante du temps et on
a : s(t) = f(e(t)) t.
Un système combinatoire est un système comprenant plusieurs fonctions combinatoires. A partir d’un
mot binaire d’entrée, le système élabore plusieurs variables de sortie. Le système combinatoire ne
doit donc pas présenter de réactions de la sortie sur l'entrée, de sorte à ce que l'état de la sortie ne
dépende pas de l'histoire du système.
Remarque :
Cette proposition peut être vraie ou fausse pour chacune des combinaisons ==> il y a 2N résultats soit
n
(2) 2 opérations différentes.
- Pour le cas n = 1 il y a 4 fonctions possibles (fonctions à une variable)
2
- Pour le cas n = 2 il y a 16 fonctions possibles (fonctions à deux variables), mais seul un petit
nombre intervient dans la réalisation technologique associée à la structure d’algèbre de Boole (algèbre
des variables et fonctions binaires).
Une table de vérité représente l’état de la variable de sortie pour chacune des combinaisons des n
variables d’entrée (2n lignes). Autrement dit une table de vérité nous fait connaître la réaction d'un
3
circuit logique (sa valeur de sortie) aux diverses combinaisons de niveaux logiques appliqués aux
entrées.
I.4. Théorie
Nous savons tous que les ordinateurs fonctionnent en utilisant exclusivement deux valeurs
numériques : 0 ou 1...
Les raisonnements logiques peuvent se ramener à des choix "binaires", en fonction des réponses "oui"
ou "non" à quelques questions judicieuses.
Est-il possible d’appliquer ces deux idées de base à une machine et lui apprendre ainsi à raisonner?
Exemple :
La proposition de base est : "SI tu as 500 FCFA ET SI tu as faim, ALORS, tu iras au restaurant
universitaire"
On vous demande de déduire (dans le tableau ci-dessous) des réponses à ces deux questions la
réponse à la question 3 :
Cet ensemble de deux réponses permettant de trouver logiquement la troisième peut se symboliser
par un tableau,
En remplaçant les réponses OUI et NON par les variables logiques correspondantes, on obtient la
table de vérité d’une fonction logique qu’on verra plus loin.
4
II. OPERATEURS LOGIQUES ELEMENTAIRES (OU DE BASE)
Ils servent à construire les fonctions logiques. Pour interpréter les opérations logiques, on peut utiliser
la théorie des ensembles par le biais du diagramme de Venn (ou d’Euler-Venn). A chaque variable
logique, on associe une courbe fermée dont l’intérieur représente l’ensemble des cas où la proposition
est vraie (variable = 1) et l’extérieur l’ensemble des cas où elle est fausse (variable = 0).
a=0
a=1
Un logigramme d’une opération (ou opérateur) est le symbole (ou figure) qui schématise le
circuit électronique qui réalise cette opération.
L’opération (ou opérateur) OUI est dite unaire (ne s’applique qu’à un seul opérande). Elle affecte à la
variable de sortie l’état logique de la variable d’entrée.
a S
Equation : a est la l’entrée, S la sortie : S = a.
0
1
a S
a 1 S
Table de vérité
Va
t
Vs
5
t
Cette figure (à gauche)
représente le chronogramme
L’opération (ou opérateur) NON, encore appelée complément, inverse, négation ou Pas, est la fonction
unaire qui affecte à la variable de sortie l’état complémentaire de la variable d’entrée.
VA
t
VS
II.3. Opérateur ET
6
L’opération ET est le produit logique. Le signe est celui de la multiplication (un point), mais on lit « et
». C’est un opérateur binaire qui affecte à la variable de sortie l’état 1 si et seulement si les variables
d’entrée sont à 1 simultanément.
Equation : A et B les entrées, S la sortie, S = x = A.B = B.A. On note aussi l’opération ET par un V retourné
: A.B = AB (penser à l’intersection d’ensembles).
VA
t
VB
t
VS
Remarque : La fonction ET peut également être expliquer à partir du montage électrique suivant.
K1 K2
On peut définir deux variables logiques a et b qui représentent les états des interrupteurs Kl et K2
7
On peut définir une fonction logique S (sortie) qui représente l'état de la lampe L :
On peut alors définir une table de vérité qui permet de connaître la valeur de la fonction logique S en
fonction des diverses combinaisons des valeurs des variables a et b. Les valeurs des variables sont
placées dans l'ordre binaire naturel. La table de vérité traduira le fonctionnement du système.
II.4. Opérateur OU
L’opération OU est la somme logique. Le signe est celui de l’addition (+), mais on lit « ou ». C’est un
opérateur binaire qui affecte à la variable de sortie l’état 1 si et seulement si une variable d’entrée
est à 1. Cette définition induit directement le symbole ≥1.
VA
t
VB
t
VS
8
K1
K2
L
Remarques :
Il est possible d’étendre la notion d’opération logique en utilisant des concepts plus « algébriques » :
On peut montrer qu’il est possible de synthétiser tous les opérateurs de base ci-dessus avec un seul
type d’opérateurs que on l’appelle opérateurs complets ou induits ou universels. Il en existe deux :
NAND et NOR.
Cette fonction logique est le résultat de l’association d’un NON et d’un ET. C’est un opérateur binaire
qui affecte à la variable de sortie l’état 0 si et seulement si les variables d’entrée sont à 1
simultanément.
9
VA
t
VB
t
VS
Cette fonction logique est le résultat de l’association d’un NON et d’un OU. C’est un opérateur
binaire qui affecte à la variable de sortie l’état 1 si et seulement si les variables d’entrée sont à 0
simultanément.
Equation : A et B les entrées, x la sortie, x = A + B . On note aussi l’opération NOR par une flèche
descendante.
VA
t
VB
t
VS
10
III.3. Opérateur OU-EXCLUSIF (ou XOR)
Cet opérateur logique binaire ne prend la valeur 1 que si une seule des entrées est à 1.
Généralisation
Cet opérateur peut donc aisément faire fonction de contrôleur de parité (ou d’imparité).
VA
t
VB
t
VS
Cette fonction logique est le résultat de l’association d’un NON et d’un OU-EXCLUSIF.
De manière générale, la fonction de sortie d’une porte NON-OU-EXCLUSIF indique l’égalité entre les
deux signaux d’entrées. La sortie est active (niveau 1) si l’état logique des entrées est identique. Le
fonctionnement de cette porte correspond à un comparateur un bit.
Cet opérateur a une propriété particulière. L’inversion de la sortie peut être reportée sur l’une ou
l’autre des entrées, soit : A B = A B = A B à démontrer en TD
11
III.5. Association d’opérateurs
Un opérateur, dont l’une des entrées est reliée à la sortie d’un autre opérateur, se verra appliquée sur
son entrée le résultat obtenu sur la sortie de l’opérateur précédent. On combinera chaque nouvelle
valeur des entrées dans l’équation de celui-ci pour obtenir l’équation de sortie.
a
& 1 S=
b
a
&
b
& S=
c
d
1
a
&
b
1 S=
a
=1
b
=1 S=
12
EXERCICE N° 1
A
C A B S t
B
t
C
t
S t
EXERCICE N° 2
_ _ _ _
0 0 0 1 1 1 0 0
0 0 1 1 1 0 0 1
0 1 0 1 0 1 0 0
0 1 1 1 0 0 0 1
1 0 0 0 1 1 1 0
1 0 1 0 1 0 0 0
1 1 0 0 0 1 0 0
1 1 1 0 0 0 0 1
13
EXERCICE N° 3
&
E1
& & S
E2
&
14
CHAPITRE 4 : FONCTIONS ET CIRCUITS LOGIQUES COMBINATOIRES
COMPLEXES
Tous les opérateurs précédents permettent de combiner des variables pour en construire de
nouvelles. La relation entre les grandeurs d'entrée et la sortie se présente souvent sous une forme
algébrique très complexe. Pour limiter le nombre de portes nécessaires à la réalisation de ces
fonctions, il est parfois nécessaire de simplifier l'équation liant les grandeurs entre elles. Nous allons
nous intéresser aux différentes méthodes permettant ces simplifications.
c = a + b.d
Exemple : c = a + b.(e + f)
d=e+f
I.1. Propriétés
· Commutativité
· Associativité
· Distributivité
(a + b).c = ac + bc (distributivité du produit logique sur la somme logique)
· Involution : a =a
· Idempotence :a + a = a a.a=a
· Relation d’absorption
a + a.b = a a.(a + b) = a
· Théorème de consensus
Exercice :
Quand on complémente une opération logique complexe, le résultat conduit à substituer l'addition
au produit et inversement, ainsi qu'à complémenter les variables.
Le but est d’exprimer les opérateurs ET, OU et NON exclusivement à l’aide d’opérateurs NOR seuls ou
NAND seuls.
ā=
ab =
a+b=
Les formes normales (ou canoniques)
On appelle maxterme de n variables, une somme logique de ces dernières (complémentées ou non).
De la même manière que pour les mintermes, on construit 2n maxtermes avec n variables. Un produit
canonique est le produit de maxtermes.
La première forme canonique (ou 1er théorème de Shannon ou Forme Normale disjonctive FND)
d’une expression booléenne est composée d’une somme de mintermes exclusivement. Pour une
expression donnée cette forme est unique.
Remarque : la somme de tous les mintermes de n variables vaut toujours 1 puisqu'il existe toujours
un minterme de n variables valant 1.
La seconde forme canonique (ou 2ème théorème de Shannon ou Forme Normale Conjonctive FNC)
d’une expression booléenne est composée d’un produit de maxtermes exclusivement. Pour une
expression donnée cette forme est unique.
Remarque : Le produit de tous les maxtermes de n variables vaut toujours 0 puisqu’il existe toujours
un maxterme de n variables valant 0.
L’écriture des expressions logique a cet inconvénient d’être assez longue. Chaque minterme parmi
les 2n de n variables correspond à un nombre représentant son ordre, c’est pourquoi on préfère parfois
utiliser une écriture indiquant la liste classée des numéros des mintermes de la première forme
canonique. Cette forme est appelée canonique décimale.
Exemple : F = abcd + abcd + abcd + abcd peut aussi s'écrire F(a, b, c, d) = 0, 6, 10, 15.
Le but ici est de retrouver l’expression canonique de la fonction connaissant sa table de vérité
Pour établir l’expression canonique disjonctive de la fonction : il suffit d’effectuer la somme logique
des mintermes associées aux états pour lesquels la fonction vaut « 1 ».
Exemple :
I.3. Simplification algébrique
Il n'existe pas de méthode générale pour simplifier une fonction logique. Néanmoins, deux étapes
interviennent souvent dans la simplification.
Exemple :
1- Simplifier x = A + C . B + D
2- Réaliser la fonction y = A + B + C avec une porte NAND et un inverseur.
I.4. Méthode de Karnaugh
Cette méthode permet de simplifier des fonctions pour lesquelles on donne la table de vérité. Elle
n'est concrètement utilisable que pour un nombre limité de variables d'entrées. Comme pour la
simplification algébrique, la méthode est donc limitée à des fonctions relativement simples.
Chaque combinaison de variables est représentée par une case qui contient la valeur de la fonction.
Deux cases sont dites adjacentes quand une seule des variables d'entrée a évolué pour que l'on passe
de l'une à l'autre. Graphiquement, on va alors procéder à des regroupements qui vont conduire à des
simplifications.
Lors des raisonnements, on procède en disant qu'un 1 correspond à une réponse vraie et un 0 à une
réponse fausse.
La table de Karnaugh est un outil graphique qui permet de simplifier de manière méthodique une
équation logique. Nous pourrons obtenir ensuite le schéma optimal correspondant au circuit logique
combinatoire. Bien que les tables de Karnaugh soient applicables à des problèmes ayant un nombre
quelconque de variables d'entrée, en pratique, ils ne sont plus d'une grande utilité quand le nombre
de variables dépasse six. En plus, dans cette section, nous n'allons pas aborder de problèmes ayant
plus de quatre entrées. Les cas de circuits ayant cinq et six entrées sont des problèmes d'envergure.
Au-delà, il est préférable de résoudre les tables de Karnaugh avec un programme informatique.
Cette forme de représentation est utilisée pour trouver une expression simplifiée d'une fonction
logique. La table de Karnaugh, tout comme la table de vérité, est un instrument qui met en évidence
la correspondance entre les entrées logiques et la sortie recherchée. La table de vérité donne la valeur
de la sortie X pour chacune des combinaisons des valeurs d'entrée, par contre, la table de Karnaugh
organise l'information de manière différente. A chaque ligne de la table de vérité correspond une
cellule de la table de Karnaugh. Mais les cellules dans la table de Karnaugh ne sont pas dans le même
ordre.
La construction de la table de Karnaugh garanti qu’il n’y a qu’une seule variable qui change entre
deux cases voisines. Nous voyons une autre propriété de la table de Karnaugh :
Dans le cas d'un système à quatre variables d'entrée, on crée un tableau à 2 x 4 entrées, puis on
regroupe les termes adjacents.
C B A Z Dans cette table aucun état de la sortie Z ne figure pour les combinaisons
0 0 0 0 CBA = 100 et CBA = 011. Au contraire, on a mis un x. Ce x signifie une condition
0 0 1 0 indifférente. Plusieurs raisons peuvent expliquer la présence de conditions
indifférentes, la plus courante étant que dans certaines situations ces
0 1 0 0 combinaisons d'entrée ne peuvent jamais survenir; par conséquent, il est
0 1 1 x inutile de préciser pour elles une valeur de sortie.
1 0 0 x En présence de conditions indifférentes, il faut décider quel x de sortie est
1 0 1 1 remplacé par un 0 et lequel est remplacé par un 1. Le choix est donné en
recherchant la façon la plus efficace de grouper les 1 adjacents de la table de
1 1 0 1 Karnaugh. L’objectif est d’obtenir l'expression la plus simple.
1 1 1 1
II. FONCTIONS PRINCIPALES DE LA LOGIQUE COMBINATOIRE
Les portes que nous avons décrites précédemment constituent les circuits combinatoires de base. Ces
composants utilisés jusqu'à maintenant (ET, OU, NON-ET, XOR, ...) faisaient partie de la catégorie SSI
(Small Scale Integration). Principalement à cause de leur simplicité, ce sont les premiers circuits
intégrés à avoir été réalisés avec succès au tout début de l'ère électronique moderne.
Cependant, on a souvent besoin de travailler avec des fonctions plus évoluées, obtenues à partir
d'associations judicieuses de portes élémentaires. Les progrès techniques réalisés en conception de
circuits intégrés ont permis de concevoir des circuits un peu plus complexes permettant de réaliser
des fonctions plus générales. Ces circuits d'intégration moyenne (MSI – Medium Scale Integration)
sont présentés dans cette section.
II.1. Le multiplexeur.
C'est un circuit logique ayant plusieurs entrées de données, mais une seule sortie pour les restituer.
La donnée restituée en sortie dépend d'une commande apportée par d'autres entrées (les entrées
d'adresse) qui donnent le numéro de canal à transmettre en sortie. Les mots d'entrée comportent
autant de bits que la sortie.
Intérêt
- Un multiplexeur joue le rôle d’un commutateur à plusieurs positions qui aiguillerait vers la sortie
les informations de n’importe quelle entrée,
- Les entrées d’adressage permettent de connaître à chaque instant l’état d’une entrée de données,
- Par une utilisation cyclique des entrées d’adressage, les données des entrées, qui sont en parallèle
à l’entrée du multiplexeur, se retrouvent en série à la sortie.
II.2. Le démultiplexeur.
- Un démultiplexeur joue le rôle d’un commutateur à plusieurs positions qui oriente les
informations d’entrée vers la sortie choisie,
- Les entrées d’adressage permettent de connaître à chaque instant l’état d’une sortie,
- Par une utilisation cyclique des entrées d’adressage, les données des entrées, qui sont en série à
l’entrée du démultiplexeur, se retrouvent en parallèle à la sortie.
Un micro-ordinateur utilise le binaire pour faire ses calculs. L’objectif de ce paragraphe est d’étudier
la méthode qu’il emploie.
Un calculateur doit pouvoir effectuer toutes les opérations arithmétiques élémentaires (addition,
soustraction, multiplication et division). En fait addition et soustraction suffisent, car la multiplication
est une addition répétée et la division une soustraction répétée.
Comme un ordinateur est un calculateur, il ne peut réaliser que les deux opérations de base précitées :
l’addition et la soustraction, à l’aide de portes logiques (et, ou, ...), mais chaque opération dure très
peu de temps (< 1 ns). Ainsi lorsqu’on lui demande d’additionner 12 + 10, l’ordinateur doit convertir
ces nombres en binaire avant d’effectuer cette opération.
Finalement cela revient à faire des additions élémentaires où apparaissent des chiffres qui sont le
résultat de la somme s et éventuellement des chiffres de retenue r.
0 + 0 =
0 + 1 =
1 + 0 =
1 + 1 =
Il faut disposer d’un module permettant de réaliser l’addition de 2 chiffres de 1 bit figurés
par les variables logiques a et b correspondant aux entrées E1 et E2 ci-dessous. Le résultat de
l’addition est la variable logique s obtenue à la sortie S, une éventuelle retenue étant figurée
par la variable logique r obtenue à la borne R.
E1 a s S
Demi
E2 b Add r
R
On peut alors associer une table de vérité et donc une fonction logique pour chacune des 2
sorties :
Il faut rappeler qu’un circuit est combinatoire s’il effectue une opération indépendante du temps,
c’est-à-dire que son état de sortie à un instant donné ne dépend que de l’état appliqué à ses entrées
au même instant.
Outre les multiplexeurs, démultiplexeurs et les opérateurs arithmétiques logiques, nous parlerons ici
des aiguilleurs, codeurs, décodeurs et transcodeurs.
a) On veut obtenir à la sortie S d’un opérateur l’une ou l’autre des variables d’entrée selon l’état de
b) Un signal « a » doit être transmis sur une sortie S1 ou une sortie S2 selon la valeur d’une variable
de commande k.
Pour N variables à l’entrée, on utilise un décodeur.
III.2. Codeurs ou encodeurs
C'est un circuit à N entrées dont une seulement est active et qui délivre sur n sorties (en code
binaire ou autre) le numéro de l'entrée. Autrement dit c’est un dispositif qui traduit les mots appliqués
à l’entrée dans un code choisi. Ainsi par exemple la transposition des chiffres de 0 à 9 s’effectue avec
un codeur. Si en effet on porte à 1 (haut) une entrée i (=0 à 9), les sorties A, B, C, D viennent au niveau
1 ou 0 selon le cas.
III.3. Décodeurs
C'est un circuit à n entrées qui permet de sélectionner une sortie parmi N (avec N 2n).
III.4. Transcodeurs
Les transcodeurs sont des circuits qui convertissent les différents codes entre eux. D'une
manière générale, nous pouvons définir le transcodage comme étant la représentation d'un
élément de l'ensemble A par un ou plusieurs éléments pris dans un ensemble B d'éléments.
Le rapport entre les deux quantités est déterminé par une règle de correspondance.
Ce type de circuit permet de convertir une position codée en binaire réfléchi (voir codeur de
position) en un nombre binaire correspondant à cette position.
Tables de vérité.
x y z t X Y Z T
0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 1
0 0 1 1 0 0 1 0
0 0 1 0 0 0 1 1
0 1 1 0 0 1 0 0
0 1 1 1 0 1 0 1
0 1 0 1 0 1 1 0
0 1 0 0 0 1 1 1
1 1 0 0 1 0 0 0 zt
00 01 11 10
1 1 0 1 1 0 0 1 xy
1 1 1 1 1 0 1 0 00 1 2 3 4
1 1 1 0 1 0 1 1 01 8 7 6 5
1 0 1 0 1 1 0 0 11 9 10 11 12
1 0 1 1 1 1 0 1 10 16 15 14 13
1 0 0 1 1 1 1 0
1 0 0 0 1 1 1 1
Tableaux de KARNAUGH.
zt zt zt
00 01 11 10 00 01 11 10 00 01 11 10 zt
xy xy xy 00 01 11 10
xy
00 0 0 0 0 00 0 0 0 0 00 0 0 1 1
00 0 1 0 1
01 0 0 0 0 01 1 1 1 1 01 1 1 0 0
01 1 0 1 0
11 1 1 1 1 11 0 0 0 0 11 0 0 1 1
11 0 1 0 1
10 1 1 1 1 10 1 1 1 1 10 1 1 0 0
10 1 0 1 0
Equations :
X=x
Y= x y + y x = x y
Z= x y z + x y z + x y z + x y z
= z ( x y + x y) + z ( x y + x y ) = z (x y)
T= x y z t + x y z t + x y z t + x yzt + xy z t + xy+z t + x y z t +x y zt
T= t (z (x y))
Logigramme :
x y z t
X
=1 Y
=1 Z
=1 T
Remarque : Nous voyons apparaître une structure répétitive qui permet d’étendre à n bits ce
système de transcodage.
EXERCICE N° 1
Prouver les assertions suivantes en partant de l’expression de gauche (préciser les propriétés et
théorèmes utilisés).
2) x z + x z + y z = x z + x z + x y
EXERCICE N° 2
Construisez le circuit de chacune des fonctions logiques suivantes en utilisant le minimum de portes
logique possibles (simplifiez si nécessaire avant la construction du circuit)
1) S1 = xy + x.y
2) S2 = x y (z x)
Pour chacune des expressions suivantes, construisez le circuit logique correspondant en recourant à
des portes OU, des portes ET et des INVERSEURS.
3) S3 = A.B. (C D)
4) S4 = (A + B+C.D.E) + B.C.D
EXERCICE N° 3
EXERCICE N° 4
P 00 01 11 10 Q 00 01 11 10
00 1 0 0 1 00 0 0 1 0
01 1 1 1 1 01 1 0 1 1
cd 11 1 1 0 0 cd 11 1 1 1 1
10 0 0 0 0 10 0 0 1 0
ab abc
00 0 1 1 0 00 0 1 1 0 0 1 1 0
01 1 0 0 1 01 0 1 1 0 0 1 1 0
cd 11 0 0 0 0 de 11 0 1 1 0 0 1 1 0
10 0 1 1 0 10 1 1 1 0 0 1 1 0
EXERCICE N° 5
3 boutons commandent 3 électrovannes branchées à 3 cuves contenant des liquides (eau, cassis,
menthe). Le distributeur permet d'obtenir 3 boissons :
- E : eau
- C : cassis
- M : menthe
L'eau est gratuite. La commande de cassis ou menthe vous donne ces produits dilués.
Pour toute fausse manœuvre (mélange interdit ou eau seule) la pièce est restituée.
- P: pièce restituée
Exprimer E, C, M et P en fonction de e, c, m et p.
EXERCICE N° 7
Un nombre binaire de 4 bits est noté A3A2A1A0, où A3, A2, A1 et A0 représentent chacun des bits, A0
étant le bit de plus faible poids. Concevez un circuit logique qui donne une sortie HAUTE quand le
nombre binaire est strictement supérieur à 0011 et inférieur à 1001.
EXERCICE N° 8
ABCD U ABCD V
0000 0 0000 1
0001 1 0001 1
0010 1 0010 0
0011 0 0011 0
0100 0 0100 1
0101 1 0101 1
0110 0 0110 0
0111 0 0111 0
1xxx 0 1xxx 1
EXERCICE N° 9
Soit un circuit multiplieur qui accepte en entrée deux nombres binaires de 2 bits x1x0 et y1y0 et qui
fournit en sortie le nombre binaire S3S2S1S0 égal au produit arithmétique des deux nombres d'entrée.
Créez le circuit logique du multiplicateur. Pour concevoir le circuit, on pourra l'envisager comme ayant
quatre entrées et quatre sorties.
EXERCICE N° 10
Proposer un schéma structurel à l'aide de ET NON à deux entrées pour réaliser la fonction:
A
S
B
si C=1 alors S=A
C
si C=0 alors S=B
EXERCICE N° 11
Proposer un schéma structurel à l'aide de ET NON à deux entrées pour réaliser la fonction:
A1
A0 S
B1
B0 S 1 ( A1A0) 2 ( B1B0) 2
EXERCICE N° 12
s0
s1 m = 0 : s 0 = e s1 = 0
e
m m = 1 : s 1 = e s0 = 0