Dans cette nouvelle leçon, nous envisagerons deux méthodes
pour représenter les nombres et nous aborderons les opérations qui s'y rattachent.
Chacune de ces méthodes fait appel à un système de numération
dont la base est différente.
La plus répandue, que vous connaissez bien, est celle qui
utilise la base 10. L'autre, employée dans les circuits numériques, est à base 2.
Nous n'allons pas reprendre toutes les notions d'arithmétique
apprises à l'école mais nous chercherons surtout à revoir certains points.
Ces derniers vous seront utiles pour une meilleure compréhension de l'arithmétique employée dans les circuits d'électroniques.
1. - LA NUMÉRATION DÉCIMALE
Les nombres, quel que soit le système de numération utilisé,
représentent des signaux dont nous pouvons tirer des informations si nous connaissons le ou les codes qui les régissent.
Le premier de ces codes consiste à adopter des graphismes pour représenter des quantités différentes.
Les graphismes qui se sont généralisés pour nous, sont ceux
qui nous ont été transmis par les Arabes et qui constituent les chiffres arabes.
Le second code porte sur la pondération liée à chacun de ces chiffres.
En effet, ces graphismes, alignés à la suite les uns des
autres, seront affectés d'un poids en fonction de leur rang (le poids le plus faible étant affecté au rang le plus à droite).
Ce poids, ou valeur, accordé au rang est variable selon la base
du système utilisé pour la numération.
Le troisième code détermine cette base de numération.
Dans le cas présent, il s'agit du système à base 10.
Les graphismes utilisés sont les suivants :
{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }
Ils constituent la suite des chiffres arabes de zéro à neuf (10
symboles pour la base 10).
En utilisant ces règles strictes et à l'aide de ces symboles,
nous pouvons représenter tous les nombres entiers ou fractionnaires.
La figure 1 illustre, à l'aide des règles citées, la représentation
du nombre 2048 (deux mille quarante huit) en base 10. Il s'agit d'un nombre entier.
Il faut faire la distinction entre chiffre et nombre. Un chiffre
est un graphisme, le nombre représente un rapport ou une quantité (par rapport
à une référence) et est constitué d'un ou plusieurs chiffres.
Un nombre est dit entier quand il représente un rapport complet
(quand ce rapport forme un tout). Exemple :74, 127, 1230, 2048 sont des nombres entiers.
Un nombre est dit fractionnaire quand, par opposition, il ne
représente pas un rapport entier et qu'il est l'expression d'une fraction.
Un nombre décimal est le résultat d'une fraction dont le dénominateur
est une puissance de 10.
Exemple : 12,7
;576,048
La partie décimale est séparée de la partie entière par une
virgule (les anglo-saxons remplacent la virgule par un point).
Dans la figure 1, les unités sont représentées par
100.
Par convention, 100 = 1
et d'une manière générale, b0 = 1
(b étant la base du système de numération).
La figure 2 illustre la procédure de représentation d'un
nombre fractionnaire décimal.
Cette façon d'attribuer un poids croissant selon le rang occupé
par le chiffre à l'intérieur du nombre s'appelle en terme général, une numération
de position.
Dans le nombre, le chiffre qui occupe le poids le plus élevé
se nomme : le chiffre le plus significatif
ou en abrégé C.L.P.S..
A l'opposé, celui qui occupe le rang le plus faible se nomme :
le chiffre le moins significatif ou
C.L.M.S..
La virgule décimale se place entre les puissances positives et
les puissances négatives de la base.
Cette limite sépare la partie entière de la partie
fractionnaire.
Le déplacement de cette virgule d'un rang vers les puissances
positives de la base, correspond à une division du nombre par la base.
A l'opposé, le déplacement de la virgule d'un rang vers les
puissances négatives, correspond à une multiplication du nombre par la base.
Cette numération de position qui distribue un poids à chaque
rang prend aussi le qualificatif de pondérée
(du latin "pondus" qui signifie poids).
Le système de numération à base 10
est un cas parmi bien d'autres, car nous pouvons utiliser d'autres bases pourvu que
celle que l'on choisit soit un nombre entier au moins égal à 2.
Par conséquent, pour savoir dans quelle base le nombre est représenté,
il faudra le faire suivre d'un indice précisant cette base.
Exemples:
1024
10
représente le nombre mille vingt quatre en base
10.
1000
2
représente le nombre un, zéro,
zéro, zéro en base 2 (ce nombre
correspond à 8 en base
10).
Dans les relations humaines, nous n'utilisons pratiquement que
des nombres en numération décimale et, de ce fait, l'indice précisant la base disparaît.
Il faut noter également qu'un nombre représenté dans un autre
système (autre que la base 10), ne doit pas être prononcé de la même manière, mais en énumérant, du poids le plus fort vers le poids le plus faible, chaque
chiffre ou graphisme constituant ce nombre.
Ce système reprend les mêmes règles que la numération décimale.
Comme son nom l'indique, il est fondé sur deux valeurs représentées
par les graphismes suivants : { 0 , 1}.
La numération à base 2 utilise, pour la représentation des nombres, la position occupée par le
chiffre dans le nombre et accorde à cette position un poids défini préalablement.
Nous retrouvons les trois points principaux utilisés aussi en décimal,
c'est-à-dire :
le graphisme
la pondération
la base de numération.
La numération à base 2 est, dans ce genre de représentation des nombres, le système le plus simple,
donc celui que la machine pourra le mieux interpréter car il ne comporte que deux symboles.
Par contre, il ne présente pas un grand avantage en ce qui
concerne la contraction dans la figuration des nombres.
Exemple:19
en décimal s'écrit en binaire (c'est-à-dire en base 2) :10011.
Cette même quantité est représentée par deux
graphismes en base 10 alors qu'il en faut 5 en base 2.
La figure 3 illustre la représentation des nombres en numération
pondérée à base 2.
Pour trouver l'équivalent décimal du nombre binaire
101101
de l'exemple de la figure 3, on prélève, pour chaque 1
binaire, la valeur décimale du poids occupé par le rang de chacun de ces chiffres. On additionne ensuite chaque résultat partiel. Cette somme correspond
au nombre décimal équivalent.
Dans ce cas, 25 + 23 +
22 + 20 soit 32 + 8 + 4 + 1 = 45. Le nombre décimal 45
est l'équivalent du nombre binaire 101101.
La base constitue en quelque sorte un récipient. Pour mesurer
une quantité donnée, plus le récipient est grand, plus le nombre de récipients
comptabilisant, ou contenant, cette quantité sera faible.
Ainsi, si l'on n'utilise que quatre rangs ou poids différents :
en base 2, on pourra
compter de 0 à 1510(de 0
à 11112) alors qu'en base 10, on pourra compter
de 0 à 999910.
Dans les systèmes numériques, on est amené à transformer du
binaire en décimal ou inverse.
Pour cette opération inverse, on peut utiliser également le
tableau de la figure 3.
Soit à transposer le nombre 27 en son équivalent binaire.
On décompose ce nombre en la somme des poids binaires (notés
en décimal) contenus dans ce nombre. On transpose chacun de ces poids en binaire (à l'aide du tableau, figure 3) et on effectue la somme (figure 4).
27 = 16 + 8 + 2 + 1
Une autre méthode consiste à diviser successivement par
2, le nombre décimal. Le reste de chaque division, ainsi que le dernier quotient,
constituent l'équivalent binaire. Ce dernier quotient correspond au chiffre de
rang le plus élevé du nombre binaire ainsi obtenu.
Soit à transposer 2910
en binaire. La figure 5 explicite cette autre méthode.
Comme dans le système décimal, les nombres fractionnaires
doivent être représentés. La partie entière est séparée de la partie
fractionnaire par une virgule (les anglo-saxons utilisent un point).
Le poids des rangs est représenté par le nombre correspondant
à la base de numération affecté, en exposant, de l'ordre chronologique du rang précédé du signe négatif.
Les exposants négatifs correspondent à des fractions, d'où
l'appellation de nombres fractionnaires.
Exemples:
La figure 6 représente la procédure d'écriture d'un nombre fractionnaire en binaire.
Les nombres binaires sont, pour nous, difficiles à manipuler et
compliqués à lire. Quand un dialogue doit s'établir entre le technicien et la machine, on a recours au codage de l'information binaire. Par exemple, le code BCD
(Binaire Codé Décimal), permet de lire ou de transposer plus facilement l'information.
Ce code ne fait appel qu'aux nombres binaires 0000 à 1001 (0
à 910).
Chaque groupe de quatre bits (bit=binary
digit=
chiffre binaire) représente en partant de la droite son équivalent décimal et le poids affecté à son rang.
Le poids le plus faible est toujours situé le plus à droite.
Exemple:99
10
s'écrit en binaire pur 01100011.
En BCD, il devient :
99 en décimal s'écrit en BCD:1001 1001.
En résumé, c'est le système de représentation décimal mais
on remplace les chiffres décimaux par leurs équivalents binaires.
Dans certaines machines, quand il est nécessaire d'introduire
des données, on utilise une autre base de numération. Il s'agit de l'hexadécimal
(base 16).
La figure 7 donne l'équivalence pour les 32 premiers nombres
entre le décimal, le binaire, l'hexadécimal et l'octal.
En hexadécimal, les graphismes utilisés sont au nombre de
16.
Ce sont :
{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F }
Cette notation simplifie la représentation des nombres.
Les erreurs, lors de la transposition des informations du
technicien (hexadécimal) à la machine (en binaire), sont considérablement réduites.
Ceci nécessite, à l'intérieur de la machine, un système de
traduction de l'hexadécimal en binaire (et inversement), car si les circuits numériques peuvent interpréter plusieurs langages, elles "pensent" en
binaire.
Exemple: le nombre 255
10
s'écrit en hexadécimal :FF (alors
qu'il s'écrit en binaire :11111111).
On évite ainsi l'écriture d'un grand nombre de graphismes,
supprimant par là les erreurs d'inattention.
En continuant dans cette voie, il suffit que l'interpréteur
soit à même de comprendre un langage proche du langage parlé et le dialogue avec la machine se simplifie considérablement. C'est l'orientation qui est donnée
depuis quelques années déjà pour les ordinateurs et les langages dits :"évolués".
La numération à base 8 est
aussi utilisée en électronique numérique, on la désigne sous le vocable :Octal.
Les graphismes que cette numération utilise sont les suivants
:
{ 0, 1, 2, 3, 4, 5, 6, 7 }
La représentation des nombres dans cette numération s'effectue
de la même manière que pour celles décrites précédemment ; elle
utilise la numération de position.
Nous allons nous attarder un peu sur ces codes et prendre un exemple.
Soit à transposer le nombre décimal 99
en binaire, octal puis hexadécimal.
Pour transformer un nombre décimal en binaire pur, il faut décomposer
ce nombre en puissances de 2.
Reportons-nous à la figure 8 qui regroupe les puissances de 2,
de 0 à 20.
Nous allons chercher quelle est la plus grande puissance de 2 comprise entièrement et une fois dans le nombre décimal.
27= 128
n'est pas contenu dans 99.
26= 64 est contenu dans
99.
Mais 64 ne correspond pas
entièrement à 99, il y a un reste :99 - 64 = 35.
Nous continuons à chercher la puissance de
2 contenu dans
35:
25= 32 est contenu dans
35.
Nous cherchons le reste et continuons le processus jusqu'au reste nul.
35 - 32 = 3
21= 2 est contenu dans 3.
Reste :3 - 2 = 1
20= 1 est contenu dans 1.
Reste : 1 - 1 = 0. Nous
obtenons ainsi :
99 = 26
+ 25 + 21 + 20
La puissance de 2
nous indique le rang correspondant au poids binaire contenu entièrement
et une fois dans le nombre décimal considéré. C'est pourquoi nous placerons un 1 (binaire) à l'endroit du rang indiqué
en exposant (voir figure 3). C'est ce qui est réalisé figure 9.
Nous venons de transposer un nombre décimal en son équivalent binaire.
Pour passer du décimal à l'octal, il est un moyen simple qui
consiste à passer par le binaire.
Le nombre binaire, équivalent du nombre décimal, que l'on désire
transformer, est scindé par tranches de trois chiffres en commençant par la
droite. Chaque groupe de trois chiffres représente un nouveau nombre. Chacun de
ces nombres est transposé en autant de chiffres en octal, l'ensemble de ces chiffres constituant le nombre octal équivalent.
Le fait d'ajouter deux zéros en tête du nombre binaire ne
change rien au nombre.
Pourquoi scinder le nombre binaire en tranches de trois chiffres ?
Parce que la base 8 correspond à une puissance entière de 2
(donc de la base 2), en effet, 8 = 23. Dans la base 8,
les graphismes ou chiffres que l'on peut attribuer aux rangs vont de 0 à 7. Pour obtenir ces chiffres en binaire,
il faut disposer de trois rangs :
Il apparaît nettement que trois rangs, ou poids consécutifs
pour représenter les sept chiffres dont est constitué le système octal, sont nécessaires et suffisants.
Pour transformer un nombre décimal en un nombre hexadécimal,
on utilise la même méthode qui consiste à passer par le binaire. L'hexadécimal
est aussi une puissance entière du système à base 2. Mais puisque les graphismes sont au nombre de 16,
on découpera le nombre binaire par tranches de 4 chiffres que l'on transposera en chiffres hexadécimaux afin d'obtenir le nombre hexadécimal.
Tout système de numération dont la base correspond à une puissance entière de 2, pourra utiliser la
même procédure. Par exemple, pour un système à base 32 (soit 25), on scinde le nombre binaire en tranches de 5 chiffres. on
obtient :
Dans cet exemple, le nombre hexadécimal ne
comporte pas de lettre. Nous avons vu à la figure 7 que ce système au delà de 9 comportait les lettres :
A, B, C, D, E, F
Ces lettres sont indispensables car il n'y a pas de chiffres prévus
dans ce cas. On pourrait très bien en inventer, n'importe quel dessin ferait l'affaire, mais, en électronique digitale
(instructions des microprocesseurs), elles sont employées officiellement.
De plus, il faudrait leur donner une prononciation.
Voyons maintenant un exemple utilisant ces lettres. Soit à
transposer 23410 en son équivalent en base 16 (hexadécimal). La figure 10
donne tout d'abord le déroulement des opérations pour le passage en binaire.
Scindons le nombre binaire obtenu en tranches de quatre chiffres.
Le nombre 23410 a
pour équivalent le nombre hexadécimal :EA.
Le nombre 25510 a
pour équivalent le nombre hexadécimal :FF.
Cette façon de représenter un nombre avec des lettres peut
paraître surprenante, mais si vous réalisez des automatismes à microprocesseurs, vous devrez entrer les instructions en hexadécimal et cette
notation vous paraîtra alors naturelle.
Cette façon de scinder le nombre binaire en tranches de
n chiffres pour obtenir l'équivalent dans une autre base, puissance entière de 2, n'est pas applicable pour la
base 10, ou décimale (10 n'est pas une puissance entière de 2).
Pour représenter les dix chiffres de cette base, il faut, malgré
tout, quatre rangs de poids binaires. Ceux-ci sont, par conséquent, mal exploités
puisqu'ils permettent la représentation des seize symboles.
Les symboles décimaux, de 0
à 9, utilisent les combinaisons binaires de 0000 à 1001.