====== Codage ======
===== Introduction =====
Tout nombre entier peut être représenté dans un système numérique de base "a" avec :\\
N=n0.a0+n1.a1+...+nn.an
Exemple en base 10, a = 10
137=7.100+3.101+1.102
===== Numération =====
==== Système décimal - Base 10 ====
Symbole {0,1,2...9}
Utilisé dans la vie courante
==== Système binaire - Base 2 ====
Symbole {0,1}
Utilisé par les électroniciens.\\
Dans le système binaire, le bit de poids le plus faible s'appelle LSB (least significant bit). Il est représenté par le bit le plus à droite.
Inversement pour le MSB (most significant bit).
^ bit 7 ^ bit 6 ^ bit 5 ^ bit 4 ^ bit 3 ^ bit 2 ^ bit 1 ^ bit 0 ^
| MSB | |||||| LSB |
==== Système octale - Base 8 ====
Symbole {0,1,2...7}
Ce système a été utilisé à une certaine époque dans les calculateurs.
==== Système héxadécimal - Base 16 ====
Symbole Symbole {0,1,2...9,A,B,C,D,E,F}
Utilisé par les électroniciens.
C'est le système le plus utilisé dans les systèmes travaillant avec des nombres multiples de 4 bits: micro pocesseur, micro ordinateur etc ..
===== Conversion =====
==== Base 2 > Base 10 ====
(1010)2
^ 1 ^ 0 ^ 1 ^ 0 ^
| 1x23 | 0x22 | 1x21 | 0x20 |
| 8 | 0 | 2 | 0 |
8+0+2+0=10
(1010)2=(10)10
==== Base 8 > Base 10 ====
(137)8
^ 1 ^ 3 ^ 7 ^
| 1x82 | 3x81 | 7x80 |
(137)8=(95)10
==== Base 16 > Base 10 ====
(5EF)16 on écrit aussi 5EF**H**
^ 5 ^ E ^ F ^
| 5x162 | 14x161 | 15x160 |
==== Base 10 > Base 2 ====
(54)10
On divise 54 par 2 jusqu'à avoir un résultat nul.
Si le **reste** de la division est nul on écrit **0**, s'il ne l'est pas on écrit **1**.
{{codage:base_10_base_2.png}}
(54)10=(110110)2
==== Base 2 > Base 16 ====
(110110)2
On fait des groupements de 4 bits
(110110)2 = (0011 0110)2
On convertit en décimal chaque groupement de 4 bits
(0011)2 = (3)10
(0110)2 = (6)10
Au final :
(110110)2=(36)10
===== Représentation des nombres =====
Il faut distinguer des nombres signés et non-signés. Dans le cas des nombres signés le module tient compte de tous les bits.
==== Représentation signe + module ====
^| Signe |^| module |^
Signe = 0 -> nombre positif
Signe = 1 -> nombre négatif
Inconvénient, il y a 2 représentations différentes pour le 0:
+0 : 00
-0 : 10
Cette représentation n'est pas utilisée.
==== Représentation en complément====
On complémente la valeur binaire de 5 et on lui rajoute 1.
^ 5 ^ 0101 ^
| /N | 1010 |
| /N+1 | 1011 |
(1011)2 = (-5)10
Exemples:
(01110)2 = (14)10 en signé et en non-signé
(10111)2 = (-7)10 en signé et (23)10 en non-signé
===== Codage =====
==== Code ASCII ====
Le code [[http://fr.wikipedia.org/wiki/ASCII|ASCII]]
==== Code BCD ( Binary Coded decimal )====
Codage utilisé pour l'utilisation d'afficheurs 7 segments.
==== Code Gray ou binaire réfléchi ====
Il n'y qu'un bit qui change lors de la transition d'un code au suivant
| 0000 |
| 0001 |
| 0011 |
| 0010 |
| 0110 |
| 0111 |
| 0101 |
| 0100 |
| 1100 |
| 1101 |
| 1111 |
| 1110 |
| 1010 |
| 1011 |
| 1001 |
| 1000 |
Applications : Codeurs optique ou tableau de Karnaugh