# Code de numération/Introduction

En mathématique, il est possible de compter de différentes façons. Il existe la base décimale, qui est la base la plus communément répandue, celle que nous utilisons tous les jours pour compter. Il est aussi possible de compter en base 2 (binaire), en base 8 (octal) et en base 16 (hexadécimal). D'autres bases existent, en fait une infinité, mais les bases précédemment citées sont celles qui sont le plus souvent utilisées en électronique et en informatique.

## Systèmes de numération pondérés

Les bases utilisées pour compter sont toutes des systèmes de numération pondérés, cela siginfie que le système comprend :
* une base,
* des symboles,
* un poids pour chaque chiffre du nombre selon leur rang.

### Système décimal

Le système décimal correspond à la base 10, il est composé :
* de 10 symboles : 0, 1, 2, 3, 4, 5, 6, 7, 8 et 9,
* d’un poids qui correspond aux puissances de 10.
Décomposition d’un nombre suivant le système de numération décimal :
| Symbole | 3 | 4 | 8 | 2 |
| Poids du symbole suivant le rang | $10^{3}$ | $10^{2}$ | $10^{1}$ | $10^{0}$ |
| Valeur du poids | 1000 | 100 | 10 | 1 |
| Valeur de chaque symbole | 3000 | 400 | 80 | 2 |
C'est la décomposition du nombre 3482 = 3000 + 400 + 80 + 2

### Système binaire

Le système binaire correspond à la base 2, il est composé :
* de 2 symboles : 0 et 1,
* d’un poids qui correspond aux puissances de 2.
Décomposition d’un nombre suivant le système de numération binaire :
| Symbole | 1 | 0 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 0 |
| Poids du symbole suivant le rang | $2^{15}$ | $2^{14}$ | $2^{13}$ | $2^{12}$ | $2^{11}$ | $2^{10}$ | $2^{9}$ | $2^{8}$ | $2^{7}$ | $2^{6}$ | $2^{5}$ | $2^{4}$ | $2^{3}$ | $2^{2}$ | $2^{1}$ | $2^{0}$ |
| Valeur du poids | 32768 | 16384 | 8192 | 4096 | 2048 | 1024 | 512 | 256 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
| Valeur de chaque symbole | 32768 | 0 | 8192 | 4096 | 2048 | 0 | 512 | 256 | 128 | 0 | 0 | 16 | 8 | 0 | 2 | 0 |
Donc $1011101110011010_{(2)}=48026_{(10)}$

### Système octal

Le système octal correspond à la base 8, il est composé :
* de 8 symboles : 0, 1, 2, 3, 4, 5, 6 et 7,
* d’un poids qui correspond aux puissances de 8.
Décomposition d’un nombre suivant le système de numération octal :
| Symbole | 4 | 1 | 5 | 6 | 2 |
| Poids du symbole suivant le rang | $8^{4}$ | $8^{3}$ | $8^{2}$ | $8^{1}$ | $8^{0}$ |
| Valeur du poids | 4096 | 512 | 64 | 8 | 1 |
| Valeur de chaque symbole | 16384 | 512 | 320 | 48 | 2 |
Donc $41562_{(8)}=17266_{(10)}$
On remarque que les valeurs de puissances sont des valeurs du tableau binaires, car en effet la base octal (8) est une base se retrouvant incluse dans un base binaire (2). On verra que par la suite, il est ainsi très facile de passer de la base binaire à la base octal et inversement

### Système hexadécimal

Le système hexadécimal correspond à la base 16, il est composé :
* de 16 symboles : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E et F,
* d’un poids qui correspond aux puissances de 16.
L'utilisation de symbole de lettres latines nous est imposé par le fait que les symboles chiffres sont limités à un nombre de 10, de ce fait, et pour continuer le poids du symbole :
* A vaut 10
* B vaut 11
* C vaut 12
* D vaut 13
* E vaut 14
* F vaut 15
Décomposition d’un nombre suivant le système de numération hexadécimal :
| Symbole | 7 | 3 | D | A |
| Poids du symbole suivant le rang | $16^{3}$ | $16^{2}$ | $16^{1}$ | $16^{0}$ |
| Valeur du poids | 4096 | 256 | 16 | 1 |
| Valeur de chaque symbole | 28672 | 768 | 208 | 10 |
Donc $73DA_{(16)}=29675_{(10)}$
Tout comme en octal, on retrouve des valeurs identique entre les poids des rangs en système hexadécimal et les poids des rangs binaires. On va donc trouver un système très simple pour passer d'une base hexadécimal vers une base binaire.

## Système de numération non pondérées
### Code DCB

Le code DCB est l'acronyme de Décimal Codé en Binaire. C'est un code utilisé surtout dans le système un système codage permettant d’utiliser des afficheurs 7 segments (ou similaire). En effet, dans le binaire naturel, on code le nombre dans sa totalité, alors qu'en DCB on code chaque chiffre du nombre indépendamment les uns des autres en binaire.
Ainsi pour coder 2007, on code séparément 2, 0 et 7 en binaire naturel ce qui donne :
* $2_{(10)}$ est codé $0010_{(2)}$
* $0_{(10)}$ est codé $0000_{(2)}$
* $7_{(10)}$ est codé $0111_{(2)}$
On obtient alors :
* $2007_{(10)}$ est codé $0010\ 0000\ 0000\ 0111_{(DCB)}$

### Code Gray

Ce code a le gros avantage de n'avoir qu'un bit de modifié lorsque l’on passe d’un nombre à son suivant. En effet, certains systèmes utilisant le code binaire naturel subissent un aléa de fonctionnement lorsque, par exemple, on passe du code décimal 7 au code décimal 8, il y a 4 bits qui changent d'état, donc passage par 3 codes intermédiaires avant d'arriver au final.

## Exercices

| Sommaire | Changement de base |