- Base - Coefficients - Poids
- Conversions de bases
- Système binaire
- Représentation des nombres négatifs
- La virgule flottante
- Soustraction par addition du complément vrai
- Codage ordinaire

 
 
 

BASE - COEFFICIENTS - POIDS

                Un nombre  N, exprimé dans un système de numération à base  B, s'écrit :

                N = anBn + an-1Bn-1   + ....... + a0B0  + a-1B-1   + ...... +a-mB-m

                - La base B est en fait le nombre de symboles élémentaires dont on dispose pour exprimer les coefficients.
                - Les  ai  sont  des coefficients multiplicatifs.  avec en conséquence :
                                                                                                        ai  < B
                - Au rang  r, la quantité  Br  est le poids de ce  rang .

On exprime généralement  N  en ne rappelant que la suite des coefficients. Ainsi en base  10,

            4x102  + 0x101  + 7x100  + 3x10-1  + 5x10-2     =   407,35

La virgule marque le rang à partir duquel les poids deviennent inférieurs à  1.

Quand un coefficient multiplicatif vaut  0, on ne le supprime pas, on le conserve en bonne et due place afin de garantir la
correspondance des poids aux coefficients. La position de chacun des chiffres indique en effet la puissance de  B  dont il est le coefficient.

On n'écrit pas les zéros qui se trouveraient à la gauche du dernier chiffre non nul vers la gauche .

Les bases les plus utilisées sont :

    La base  2    : numération binaire
    La base  3    : numération ternaire
    La base  8    : numération octale
    La base 10    : numération décimale
    La base 12    : numération duodécimale
    La base 16    : numération héxadécimale

Le choix d'une base fixe le système de numération dans lequel on décide de travailler. On s'accorde à admettre que nos ancètres ont fait le choix de la numération à base  10  en fonction du nombre de doigts de leurs mains. Si nous n'avions eu que quatre doigts par main notre système aurait vraisemblablement été le système octal, ce qui eut changé bien des choses quand on connait les avantages des  systèmes à base  2exp(p).

On note bien que, quelle que soit la base du système, le poids placé immédiatement à gauche de la virgule vaut B0=1. Début


Systèmes à base  2p { p>=1 }

Tout système dont la base est une puissance de  2  est un système à base  2p. Ce sont les cas des systèmes binaires (2) , octaux (8), héxadécimaux (16). Ces systèmes se caractérisent par une grande facilité de conversion base 2 - base 2p.

DECALAGES    (Multiplication ou division par la base ou un multiple de la base)

Un décalage d'un rang sur la gauche de la suite des chiffres d'un nombre N  équivaut a une multiplication de  N  par la BASE.
                                                407,35  x  10 =  4073,50     (en base 10)

A l'inverse, tout décalage sur la droite équivaut à une division par la base. Par exemple en base 2:

                                (1 0 1 1 0 1)   / 2   =  1 0 1 1 0 , 1
Aussi:
Multiplier  N  par  Bn, c'est décaler  n  fois sur la gauche la suite des chiffres de  N avec insertion de 0's sur la droite. Diviser par   B (ou multiplier par  B-n) c'est décaler  n fois  à  droite avec insertion de 0's à gauche.
 

Numération à BASE  8  (OCTAL)

                Base:  8,    Coefficients:  a < 8  ( 0, 1,....., 7 ),       Poids:  8n

                Exemple :   N  =  3702

Numération a BASE  16  (HEXADECIMAL)

                Base: 16,   Coefficients: a < 16     ( 0, 1, 2,..., 9, A, B,..., F);    Poids:  16n

En hexadécimal, le nombre de symboles disponibles pour exprimer les   ai   devant s'élever à  16, il a fallu compléter les caractères numériques en réquisitionnant  les caractères alphabétiques allant   de  A à  F.

                Exemple                :    N =  5A2BF

Numération a BASE  2  (BINAIRE)

                Base:  2,   Coefficients:  a  < 2   ( 0, 1 ),    Poids:  2n

                Exemple :   1x2  + 0x2  + 1x2  + 1x2  + 0x2    =     10110

Deux  états  physiques  distincts  et deux  seulement suffisent à rendre compte de la valeur  0  ou  1  de tout coefficient  d'un nombre binaire. C'est  l'avantage essentiel que l'on accorde a cette numération. L'alphabet de la numération binaire qui se limite donc à deux caractères seulement s'accomodera aisément des possibilités de représentations en machines numériques.

Conversion d'un système dans un autre

Connaissant un réel positif  N  dans le système à base  B, on a, considérant ce mème nombre en base  B':

                N   = anB'n   + an-1B'n-1   +.........+a1B'1  + a0B0

On isole le premier coefficient  a0  dans la base  B', en divisant N par B'. Le reste de cette division ramène le coefficient a0

          N / B'   = (anB'n-1   +.........+a2B'1  + a1)   +  a0
                                        quotient                            reste

On isole ainsi les ai de proche en proche en reprenant chaque fois le quotient Q dans la division par B'. etc .......

          Q / B'   = (an  B   +.........+a2  B)   +  a1
                                     quotient                   reste

exemple:
conversion du nombre  437  exprimé en base 10 en son équivalent en base  3 :

                                437    3
                                13     145   3
                                   17     25   48    3
                                         1    18    16    3
                                                        1    5     3
                                                          2     1     3
                                                                 1     0

437 (base 10) =  121012  (base 3)

Nota bene:
                Une fois exécutée la division de  5  par  3  avec pour quotient  1, les divisions n'en sont pas terminées pour autant. Il faut poursuivre jusqu'a obtenir un quotient strictement nul.  C'est d'autant plus important que c'est justement le coefficient de plus fort poids qui est calculé en dernier.

ainsi :           437  = 1*3  + 2*3  + 1*3 + 0*3 + 1*3  + 2*3   =  121012

On vérifie que tous les coefficients sont bien strictement inférieurs à la base  3.
La méthode vaut pour pour les nombres fractionnaires inférieurs à  1.

Conversion base 2 - base 2p

Cette conversion consiste essentiellement à partitionner  le nombre binaire à convertir en segments de p chiffres et de convertir chacun des segments dans le système à base  p. Prenons un exemple:

    N  = 1011101100

conversion en base  8

    N  = 1  011  101  100
            1    3      5      4

    N  = 1354  en base  8

conversion en base  16

    N  = 10 1110 1100
             2     E      C

    N  = 2EC  en base  16

Le  BIT

La dénomination anglo-saxonne d'un chiffre binaire est "binary digit".  On dit, l'usage faisant , que la contraction de cette appellation a donné: "BIT"
Un nombre binaire est constitué d'une suite de bits (longueur).

MSB / LSB

Dans un configuration binaire, le bit le plus à gauche est le bit de plus fort poids ou  M.S.B  (Most Significant Bit). Le bit le plus à droite est à l'inverse le L.S.B (Least Significant Bit).

table des équivalences des 17 premières valeurs décimales:

  decimal           binaire              octal                  hexadecimal

       0                     0                      0                              0
       1                     1                      1                              1
       2                   10                      2                              2
       3                   11                      3                              3
       4                 100                      4                             4
       5                 101                      5                             5
       6                 110                      6                             6
        7                 111                      7                            7
        8                 1000                   10                           8
        9                 1001                   11                            9
       10                1010                   12                            A
        11               1011                   13                            B
        12               1100                   14                            C
        13               1101                   15                            D
        14               1110                   16                            E
        15               1111                   17                            F
        16             10000                   20                          10
        17             10001                   21                          11

Gabarit - longueur - mot

Les machines numériques obligent souvent à représenter les nombres sur une longueur de chiffres déterminée. C'est un gabarit de représentations.

Le nombre maximum de chiffres possibles dans ce gabarit est la longueurde la représentation.

Dans le système binaire, nous parlerons de MOTS. Les longueurs de mots les plus utilisées sont  4, 8 (Bytes) 16, 32 bits.
Gabarit des mots de huit bits:      [ ][ ][ ][ ][ ][ ][ ][ ]

La capacité  c  de représentations dans un gabarit de longueur  N  pour des nombres exprimés en base  B  est:

   c  =  BN

Pour des mots de huit bits, la capacité de représentions s'élève à :         28 =  256
Début


Conversion  HEXADECIMAL - BINAIRE

Il suffit de transcrire  chacun  des chiffres du nombre héxadecimal en binaire pur sur quatre bit et de concaténer l'ensemble.

           Si  N   = 5A2BF

                N   = 0101  1010  0010  1011  1111
                N   = 1011010001010111111

Conversion HEXADECIMAL - OCTAL

Comme il s'agit d'une conversion d'une base 2exp(p) - 2exp(q) Il sera commode de passer par une transcription intermédiaire en binaire pur. transcription à partir de laquelle on reconstitue l'octal en organisant la suite de bits obtenue en triplets en commençant par la droite.

                Exemple :  N   =  5A2BF
                                N    =  101  1010  0010  1011 1111

réarrangement pour écriture en base  8 :
                                      = 1 011 010 001 010 101 111 111
                                 N  =  1  3     2     1     2     5     7     7

Conversion BASE n  -  DECIMAL

Il suffit de développer l'écriture du nombre dans la base n  et de calculer la valeur ramenée en décimal .

                3702 (base 8)   =   3.8  + 7.8  + 0.8  + 2.8  =

                                                  décimal
ADJACENCES

Chiffres adjacents

Deux chiffres qui ne diffèrent que d'une unité modulo  B  sont dits  adjacents.

exemples:  en base 10  :  7 et 6 , 7 et 8 , 9 et 0
                en base 16   :  2 et 3 , C et D , F et 0
                en base  2    :  1 et 0

Deux chiffres consécutifs sont adjacents ainsi que les chiffres  0 et B-1.

Nombres adjacents

Deux nombres de mèmes longueurs qui ne diffèrent  que par un chiffre de mème rang, ces deux chiffres étant eux-mèmes adjacents, sont dits  ADJACENTS .

Exemple:

Nombres adjacents au nombre  473  exprime en base  8 :

                                474                          403                          573
                             473                       473                       473
                                472                          463                          373

Le nombre de combinaisons adjacentes à un nombre de longueur  n  est :   2n
Ce nombre est  n  dans le cas de la numération à base  2.

Complément restreint

En écrivant à la place de chacun des chiffres d'un nombre D  la valeur complémentaire à  B-1  de ce chiffre on obtient le complément restreint de  D  noté Cr(D).

                Si  D     =  4 7 0 2        (base 10)
                Cr(D)   =  5 2 9 7   =   Cr(4702)

                Si  D     =  3 0 7           (base  8)
                Cr(D)   =  4 7 0     =   Cr( 307 )

                Cr( 1101 ) =  0010      (base  2)

Alors, si  N  est cette fois la longueur du nombre  D, on a:

      Cr(D)  =  B  - D - 1

Complément  VRAI

Le complément vrai est dit aussi complément à 2 dans le système binaire. C'est le nombre qu'il faut ajouter à  D  pour égaler la capacité de représentations dans un gabarit donné  de longueur  N. Aussi :
                                                          Cv(D) =  B  - D

soit, en rapprochant de  (    )  :      Cv(D)  =  Cr(D) + 1

en décimal , si  D = 7025             Cv(D) =  10  - D =  2974 + 1  = 2975
 
 


                                                  Le SYSTEME  BINAIRE

les quatre opérations de base

Ces quatre opérations procèdent des mèmes principes indépendamment de la base de numération considérée.

Addition de deux nombres A et B en base 2

exemple :

         1 1 1                   <---- retenues

            1 0 1 1 0 1      (A)
      +       1 1 0 1 0     (B)

         1 0 0 0 1 1 1

On en dégage la table d'addition ci-après pour l'addition bit à bit au rang i:

Le circuit logique qui réalise l'addition de deux bits est un  DEMI-ADDITIONNEUR (Half adder) .

soustraction :

exemple :

                1 1 1                <---reports a retrancher dans la
                1 0 1 0 1 1     soustraction des poids immediatement
                   1 1 1 0 1     superieurs ( BORROW )
                0 0 1 1 1 0

d'ou la table de soustraction ci-après :

                a -  b    r  s
                0    0   0  0
                0    1   1  1   (report)  < borrow >
                1    0   0  1
                1    1   0  0

La MULTIPLICATION

Table de la multiplication binaire de deux bits:

                a     b     z
                0     0     0
                0     1     0
                1     0     0
                1     1     1
Une simple porte ET (z = a . b) suffit à implémenter la multiplication de deux bits.

Circuiterie de multiplication d'une donnée sur 5 bits (ai) par un bit  (B0):

Multiplication de deux nombres de n bits:

Prenons directement un exemple:

                                1 0 1 1 0 1                45  (multiplicande)  B
                           x         1 1 0 1 -----        13  (multiplieur)      A

                                1 0 1 1 0 1      x 1
                              0 0 0 0 0 0        x 0
                            1 0 1 1 0 1          x 1
                        1 0 1 1 0 1              x 1
                    _______________
                    1 1 0 1 0 0 1 0 0 1

On peut aussi poser la multiplication sous la forme ci-après
:
                                     b4   b3   b2   b1   b0
                                  x         a3   a2   a1   a0
                                    ----------------------
                           b4a0 b3a0 b2a0 b1a0 b0a0
                  b4a1 b3a1 b2a1 b1a1 b0a1    0
         b4a2 b3a2 b2a2 b1a2 b0a2     0      0
 b4a3 b3a3 b2a3 b1a3 b0a3    0       0      0
-----------------------------------------------
   P7     P6      P5    P4     P3     P2     P1     P0

Le multiplicande B est successivement multiplié par les bits du multiplieur A. On procède enfin à une addition des résultats des n multiplications si n est le nombre de bits du multiplieur. La multiplication procède d'un certain nombre d'additions partielles et de décalages à gauche du multiplicande. L'addition de l'ensemble  des  résultats partiels, est généralement fractionnée en additions successives (accumulations).

Réseau de multiplication de deux nombres de  5 bits A (a4, ....., a0) et B (B4, ......., B0). Résultat sur 10 bits M (m9,.....,m0).                                 M  =  A  x  B

On peut séquencer la multiplication pour ramener le nombre d'additionneurs à un seul additionneur.

Multiplieur 8 bits par   additions / décalages.

Il se compose:
   D'un registre tampon dans lequel est rangé le multiplicande (commande ldb). On peut souvent s'en passer.
   Un registre dans lequel on range le multiplieur. Ce registre est un registre à chargement parallèle (lda) et décalages à droite.
   Une batterie de 8 portes ET servant à multiplier le multiplicande par le bit de plus faible poids du registre multiplieur (lsb)
   Un additionneur  8 bits  (add).
   Un registre dans lequel sont accumulés les résultats partiels (acc).

Principe:

Le lsb du registre multiplieur est le premier bit de multiplication du multiplicande (Portes ET). Le résultat de la multiplication est additionné au contenu de l'accumulateur acc (mis à "00000000" avant toute multiplication). L'accumulation effectuée, le contenu du registre multiplieur est décalé d'un cran sur la droite ce qui amène le deuxième bit de multiplication en position lsb pour la deuxième multiplication. Le lsb précédent est perdu.
Ce faisant, la bascule de poids fort msb du multiplieur se libère. On en profite pour y inscrire le poids faible de l'addition tandis que acc recoit en fait les 7 autres bits et la retenue en poids fort.
La multiplication est exécutée en huit coups d'horloge. Sur chaque front de synchronisation il y a simultanément:
    - Décalage dans le registre multiplieur avec inscription en msb.
    - Chargement du registre acc.
Le compteur modulo 9 signale sur le neuvième coup d'horloge la fin d'exécution de la multiplication (TC: Terminal Count).

La DIVISION

Il s'agit ici de déterminer combien de fois le dividende contient le diviseur, on procède cette fois par soustractions successives.
                                1 1 0 1 1        |  1 0 1
                                  -  1 0 1          1 0 1 , 0 1
                                   0 0 1 1
                   *  .......
                                    1 1 1
                   -                1 0 1
                                    0 1 0
                                      1 0 0
                   *                 .....
                                                 1 0 0 0
                                                   1 0 1
                                                   1 0 0

                                                 .......
 
 







Représentation des NOMBRES NEGATIFS

1 -  Module et SIGNE

Le module du nombre exprimé en binaire pur est  accompagné d'un bit supplémentaire représentant le signe . Les associations sont:

                                0  ------>  +
                                1  ------>  -             S  module

2 -  Représentation des nombres en COMPLEMENT VRAI

C'est aussi la représentation dite VIRGULE FIXE
On convient de représenter la valeur négative d'un nombre N  par son complément  vrai ou complément à  2.

Exemple:
Pour des mots de gabarit  6:

     + 5  =  0 0 0 1 0 1
      - 5  =  1 1 1 0 1 1   =  Cv(+5)

Dans ces conditions, toute donnée  dont le bit de plus fort poids vaut  0, est positive. Tout nombre négatif aura son bit de plus fort poids égal à  1.

                0 1 1 1    +7                            On trouvera ci-contre les
                0 1 1 0    +6                            représentations des nombres
                .......                                         positifs et négatifs dans le
                .......                                         code du complément vrai pour
                0 0 0 1    +1                            des mots de quatre bits.
                0 0 0 0    +0 (zéro positif )
                1 1 1 1    -1                On peut  remarquer que dans le
                1 1 1 0    -2                             sens du  comptage  autant  que
                .......                                         du décomptage ces  configura-
                .......                                         tions sont celles des états
                1 0 0 1    -7                             successifs  d'un compteur /
                1 0 0 0    -8                             décompteur binaire modulo 16 .
 

dans ce mode de représentation le signe fait partie intégrante du nombre.

Les  traitements  arithmétiques  appliqués aux  nombres représentés en complément à  2   ne différencient pas le bit de plus fort poids des autres bits. La valeur du MSB est seulement une indication a partir de laquelle on peut déterminer  si on a affaire  a  une  valeur inférieure ou supérieure à  0.

pour des mots de  16  bits :

                1000 0000 0000 0000   =  - 32 768
             1111 1111 1111 1111   =  - 1
                0111 1111 1111 1111   =  + 32 767

On détermine la valeur du module d'un nombre représenté  dans  le  codage du  complément  vrai, en testant la valeur du plus fort poids (MSB).

si MSB = 0:   Le nombre est un nombre positif.
si MSB = 1:  Le nombre est un nombre négatif. Il y a lieu, si on veut disposer du module, d'en faire un nombre positif en le multipliant par  -1. Ce qui équivaut à écrire son complément vrai.

            - 1  x  (-n)  =  Cv(-n)  =  +n

exemple :       n  =  1 1 1 0 1 1

    Le MSB valant  1, ce nombre est négatif. On a alors:     Module de n  =  Cv(n) =  0 0 0 1 0 1  =  +5
 

le débordement  (Overflow)

Le représentation des nombres en complément à deux fait que dans tout traitement arithmétique il n'y a pas à procéder à une séparation préalable des signe et modules. La donnée est traitée d'un seul tenant. Opérant dans des gabarits (Longueur de mot) fixés il faut, après chaque opération, s'assurer que le résultat dans le gabarit est encore valide dans cette mème représentation du complément à deux. Si ce n'est pas le cas, il y a débordement (débordement au dela de l'espace de représentations). On peut se reporter à l'espace des représentations pour des mots de 4 bits rappelé plus haut (de -8 à +7). Une opération telle que  (+5) + (+4) aboutit à un débordement.

Détection du débordement

Il y a débordement si le MSB du résultat différe du bit de retenue. Une simple porte OU-exclusif à deux entrées suffira à détecter le débordement. Pour vérification, on peut procéder à quelques essais sur les nombres codés sur 4 bits.
 


La VIRGULE  FLOTTANTE

Tout nombre représenté en virgule flottante s'écrit sous la forme:
                                                                                                     N  =  M  x  Be
on distingue :
                - Une base  B
                - une mantisse  M
                - un exposant e
Ex :                                                                              -237 x 105

M est signé. Sur  une  longueur  de  mot  de  N  bits, il  y aura ainsi réservation de trois champs pour:
    le signe, la mantisse et l'exposant . La base étant la base 2.

On rappelle ci-après une norme de représentation virgule flottante de l'IEEE:

       signe       exposant         mantisse (fraction)
         s            8  bits                    23   bits
       <--------------------- 32 bits ----------------->
 
 
Signe Exposant Mantisse     (fraction)
S 8  bits 23  bits
                     <------------------------- 32 bits ------------------------>

Le mot est de  32 bits . les champs sont :

               - Champs de signe  s       ; 1 bit
               - Champ exposant  e       ; 8 bits
               - Champ mantisse  M      ; 23 bits

Représentations normalisées:
La représentation normalisée suppose une mantisse de la forme:

       1 , x x x x x x x .....x x x x x x x
         <---- partie  fractionnaire ---->

Ne se trouve ainsi représentée dans les  24 bits  de la mantisse que la partie fractionnaire du nombre. Celle-ci aura été préalablement "normalisée".

La normalisation consiste donc à ajuster l'exposant de facon à obtenir une mantisse de valeur comprise entre 1 et 2. Alors, le bit '1' avant la virgule n'apparaissant pas explicitement dans la suite des 24 bits de la mantisse est dit "bit caché" (HIDDEN BIT).

Soustraction par addition du complément vrai

Nous ne considérons ici que des nombres non signés.

                En décidant de ne traiter que des données de longueur fixe  N, tout nombre  n  est connu au modulo  2N   près. On aura toujours:

                n = n + x * 2N      x : entier  positif
alors :
                     n – m  = n - m + B
      = n + (B  - m)
                 = n + Cv(m)            Cv(m):  Complément vrai de m

n et m n'étant ici que des entiers positifs. Soustraire m  de n revient à additionner le complément vrai de  m.

si  m < n   : le résultat de l'opération sur les  N  bits est valide
si  m > n   : Le résultat sur les  N  bits est exprimé dans le code du complément à  2.

Nous  verrons  ultérieurement  que  les  opérations d'additions ou soustractions sur des nombres signes représentés dans le code du complément vrai obligent à prendre certaines précautions quant a l'interprétation des résultats.

PARITE

La parité d'une configuration binaire est la parité du nombre de '1'  présents dans cette représentation.

                Ex :    1 0 1 1 0 1 0 1 0    <parité impaire>

Il y a souvent controle de parité dans les cas de transmissions de données. Pour ce faire, l'émetteur rajoute à la donnée transmise un bit supplémentaire ou bit de parité .
Il peut ètre judicieux de procéder à un controle de parité impaire. le bit  de parité sera  alors mis à  0  si le nombre de  ‘1’  dans  la  donnée est impaire et à  1 dans le cas contraire.
La parité impaire fait que dans toute  transmission, la configuration recue contiendra au moins un ‘1’. Ce  qui lève l'ambiguité avec l'absence d'information pouvant se traduire par une suite de  ‘0’ uniquement .


                                                       Les CODES

Les informations, données ou grandeurs destinées a ètre traitées par un système numérique obligent à représenter celles-ci sous formes de configurations binaires. C'est un codage.

                  On pourra coder:

                - Des nombres
                - Des données alphanumériques
                - Des données à caractère analogique
                (tension, courant, température, pression, position angulaire, etc .....)

Le traitement numérique ne justifie pas à lui seul le codage. On pourra aussi coder pour des raisons de sécurité de transmission (on exploite le pouvoir de séparation des deux seuls symboles possibles  0  et  1) Ou encore pour assurer une meilleure détection voire réparation des erreurs de transmission (test de parité, code de hamming, ......).

N.B:
Les quelques indications données ci-aprés ne constituent pas un exposé formel sur les codes.  Ces rappels ne sont la que pour servir de supports éventuels a certains exercices de type combinatoire ou séquentiel proposés ultérieurement.

Le code décimal code binaire naturel  (BCD)

   - Codage sur une longueur fixe de  4  bits (tétrade)
   - Code pondéré reprenant la pondération du binaire pur d'ou son appellation de code  8.4.2.1.

On peut l'utiliser au codage de nombres décimaux. Consiste alors à associer à chacun des chiffres du nombre décimal son équivalent  BCDN.

exemple  :           N  =  3 4 7
codage  BCD     0011  0100  0111

Le code excédent  3

Ce code est dérivé du code  BCD  auquel on ajoute systématiquement  3.  Les équivalents décimaux de ce code vont donc  de  3  à  12.
Le code excédent trois est un code auto-complémenté. C'est aussi un code symétrique   (table        ).

Il a eu sont utilité dans certaines machines scientifiques, sa caractéristique d'auto-complémentarité  étant mise à profit dans les soustractions par  additions  des compléments vrais.

le code  GRAY

Un code  GRAY  est un code adjacent. Deux configurations qui se suivent dans ce code seront systématiquement des configurations adjacentes. (différentiation sur un seul bit parmi  n).

A noter que les deux configurations extrèmes sont elles-mèmes adjacentes. C'est un code continu ou cyclique. Il s'étend sur  n bits, le nombre de configurations du code étant chaque fois de   2. Cette propriété d'adjacence sera particulièrement mise a profit  dans  le cas de conversions de positions angulaires  (roues codeuses) ou linéaires  (barettes).

L'avantage du codage adjacent se situe au plan mécanique.xxxxx

figure  (    ), on vérifie bien que lorsque l'entrainement de la roue ammenée à passer d'un code au suivant, il ne peut y avoir commutation que  d'un  seul bit à la fois. Le système peut  alors tolérer  un léger  défaut d'alignement  des  capteurs  ( palpeurs  ou  détections électroluminescentes) sans conséquence sur l'interprétation de la mesure à la précision de l'alignement près.

Si la mème roue avait été codée en binaire pur, on mettrait facilement en évidence les risques de mesures éronées. Dans le cas par exemple d'une transition du secteur de code  0111 (7) au secteur de code  1000 (8), la transition rigoureusement simultanée des  4  bits à la fois est mécaniquement peu probable . de la configuration 0111 à la configuration 1000, on peut voir apparaitre la configuration  0101  si le détecteur du deuxième bit est légèrement place en avant par rapport aux autres. Phénomène qu'on ne peut rencontrer s'agissant d'une roue codée en code  GRAY.
 

conversion BINAIRE NATUREL - BINAIRE REFLECHI

Soit:      BINAIRE NATUREL (B) - CODE  GRAY (G)

Trouver dans le code de gray la configuration binaire  G caractérisant le secteur de rang  n  pourra se faire en appliquant la formule ci-après:

                                G  =  (N  @  2N)  /         @  : OU-exclusif  logique

N: valeur du rang  n  en binaire pur

La multiplication par 2 de N au numérateur traduit seulement un décalage à gauche avec insertion d'un  0  à droite.

La division par  2  n'est, à l'inverse qu'un décalage à droite de l'ensemble de la configuration obtenue aprés éxécution de l'opération OU-exclusif. Le bit le plus à droite est perdu, quel qu'il soit.

exemple :
Codage en gray du secteur de rang 13

                     13   =       1 1 0 1
               2 x 13   =    1 1 0 1 0
    a= N @ 2N     = 1 0 1 1 1
                  a /   =       1 0 1 1
                                                                          '1':     bit perdu à droite après décalage sur la droite

Ce traitement peut ètre assuré par la struture ci après:

                    B I N A I R E

               G R A Y

Conversion binaire réfléchi - binaire naturel

Soit:      Gray (G) - binaire naturel (B)
On appliquera les formules de transformation ci-après. On commence par le plus fort poids.
                                      G  R  A  Y
                                b      =  gn
                                bn-1   =  gn-1   @   bn
                                bn-2   =  gn-2   @   bn-1
                                .
                                .
                                b0      =  g0  @   b1
Formule:

On en déduit la structure matérielle ci-après:

                      G R A Y

                     B I N A I R E



                         DECIMAL        BCD           EXCEDENT 3             GRAY             8421

                                0                    0000                   0011                        0000
                                1                    0001                   0100                        0001
                                2                    0010                   0101                        0011
                                3                    0011                   0110                        0010
                                4                    0100                   0111                        0110
                                5                    0101                   1000                        0100
                                6                    0110                   1001                        0101
                                7                    0111                   1010                        0111
                                8                    1000                   1011                        1111
                                9                   1001                   1100                        1110
                             10                                                                                1100
                             11                                                                                1101
                             12                                                                                1001
                             13                                                                                1011
                             14                                                                                1010
                             15                                                                                1000

____ ; représentations hors code