Le transcodage

Le transcodage est l’opération qui permet de transcoder une base dans une autre base. Le nombres en informatique sont codés en base binaire. On s’intéresse ici au passage de la base binaire à la base décimale, mais aussi au passage à la base hexadécimale, base très utilisée en informatique.

 

I. Conversion binaire-décimal

 

L’objectif est de transcrire un nombre sous forme binaire en un nombre sous forme décimale.

Prenons un mot binaire quelconque codé sur 4 bits (on rappelle que dans un mot binaire, il y a deux parties importantes, les bits de poids faible situés à droite du nombre et les bits de poids forts situés à gauche du nombre). Les bits de poids faible représentent le début du mot binaire de la même manière qu’un décimal : les chiffres se situant le plus à droite sont les chiffres avec le moins de valeur, car ils commencent par les unités, puis les dizaines, puis les centaines.

Ainsi, de la même manière qu’en décimal, les unités correspondent à $10^0$, les dizaines à $10^1$, les centaines à $10,$ en binaire, le comptage se fait par rapport aux puissance de deux. Par exemple, $514$ correspond à $4times 10^0+1times 10^1+5times 10^2$.

Le chiffre binaire 0110, en lisant de la droite vers la gauche, correspond donc à $0times 2^0+1times 2^1+1times 2^2+0times 2^3=6$.

 

Méthode

Lorsque l’on dispose d’un nombre binaire que l’on veut retranscrire en décimal, on additionne aux bits restants le produit de la valeur du bit (1 ou 0, auquel cas on n’additionne rien) et de la puissance de 2 correspondant au rang du bit. Ainsi, si le cinquième bit vaut 1, cela revient à ajouter $1times 2^5$ (de la même manière que si le cinquième chiffre en décimal vaut 6, cela revient à ajouter $6times 10^5$).

La formule générale pour transcrire un nombre binaire en nombre décimal devient donc :

Binaire : $B_n…B_2B_1B_0$ avec $B_0,B_1,B_2…$ la valeurs $0$ ou $1$ des bits aux rangs $0,1,2.$

Décimal : $B_ntimes 2^n+…+B_2times 2^2+B_1times 2^1+B_0times 2^0$

On remarque que pour transcoder les nombres binaires, il est plus simple de connaître les puissances de deux, au moins les premières : 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, etc. La conversion revient donc à additionner des puissances de deux.

 

Exemple

Prenons un nombre codé sur un octet donc 8 bits : 10100111

Grâce à la formule vue précédemment, le nombre en binaire devient donc :

$1times 2^0+1times 2^1+1times 2^2+0times 2^3+0times 2^4+1times 2^5+0times 2^6+1times 2^7=1+2+4+(0times 8)+(0times 16)+32+(0times 64)+128=167$

 

Remarque

Il est important de connaître le tableau des 16 premières valeurs codées sur 4 bits.

 

0 0 0 0 0
1 0 0 0 1
2 0 0 1 0
3 0 0 1 1
4 0 1 0 0
5 0 1 0 1
6 0 1 1 0
7 0 1 1 1
8 1 0 0 0
9 1 0 0 1
A 1 0 1 0
B 1 0 1 1
C 1 1 0 0
D 1 1 0 1
E 1 1 1 0
F 1 1 1 1

 

Ce tableau est très utile pour connaître les valeurs de 0 jusqu’à F. On utilise des lettres à partir du chiffre 9 pour pouvoir coder en hexadécimal : à partir de 9, en utilisant des lettres, on a toujours un seul caractère pour représenter des mots binaires.

A la valeur 0, on associe 0000 et à la valeur F, qui correspondrait à la valeur 15, on associe le binaire 1111 (qui vaut 15 en décimal).

Il est simple de retrouver ce tableau en suivant quelques règles :

– sur la colonne du bit de poids faible, la valeur du bit change tous les 1 coups : 0 1 0 1…

– sur la seconde colonne, la valeur change tous les deux coups : 00 11 00 11…

– sur la troisième colonne, elle change tous les 4 coups : 0000 1111 0000 1111

– sur la dernière colonne, elle change tous les 8 coups : 00000000 11111111

De cette manière, on retrouve toutes les combinaisons possibles pour coder sur 4 bits, de 0 jusqu’à 15 où F en hexadécimal.

 

II. Conversion décimal-binaire

 

Pour convertir un nombre décimal quelconque en nombre binaire, il faut réaliser des divisions euclidiennes par deux successives avec reste jusqu’à arriver à un quotient égal à 1.

Ainsi, en partant d’un nombre, on le divise lui et ses quotients successifs par 2 et on note les restes successifs (égaux forcément à 0 ou 1). On continue l’opération jusqu’à obtenir un quotient égal à 1. Ainsi, le nombre décimal correspond à l’ensemble des restes notés à l’envers : le bit de poids fort est le dernier reste tandis que le bit de poids faible est le premier reste.

Si on prend 77, on obtient donc en binaire 1001101

 

III. Conversion hexadécimal-binaire

 

Le codage hexadécimal est un codage fréquent en informatique, notamment pour coder les couleurs. Le codage hexadécimal fait apparaître des caractères particuliers : les nombres sont composés de chiffres mais aussi de lettres. La lettre A représente 10, B représente 11, jusqu’à F qui représente 15. Cela permet de coder des nombres avec des valeurs plus grandes en utilisant moins de bits donc moins de valeurs décimales.

Pour passer du système hexadécimal au système binaire, il suffit de récupérer la valeur binaire de chacun des chiffres ou lettres du nombre hexadécimal et de les accoler.

Ainsi, si on prend le chiffre hexadécimal A3D2 :

A -> 1010

3 -> 0011

D -> 1101

2 -> 0010

Donc A3D2 -> 1010001111010010

Pour passer de l’hexadécimal au décimal, il faut donc passer par le nombre binaire puis transcrire le binaire en décimal. On remarque que le nombre A3D2 est un chiffre assez grand (41938 en décimal), pourtant, l’écriture hexadécimale le fait tenir sur 4 caractères.

 

IV. Conversion binaire-hexadécimal

 

La conversion de binaire vers l’hexadécimal reprend la même méthode que de l’hexadécimal vers le binaire mais en inversant le processus. On découpe le mot binaire en séquences de 4 bits, si la séquence de 4 bits est incomplète, il suffit de la compléter avec des 0. On retranscrit ensuite chaque quadruplet de bit par sa valeur en hexadécimal. 

Prenons le nombre binaire 10100011111 :

– séparer le nombre en séquence de 4 bits en partant de la droite : 101 0001 1111

– compléter avec des 0 pour finir les séquences de 4 bits et compléter les octets : 0000 0101 0001 1111

– transcrire chaque quadruplet par sa valeur en hexadécimal : 0 5 1 F

 

V. Conversion hexadécimal-décimal

 

La méthode la plus pratique consiste à passer par la base binaire, ce qui rajoute une étape mais permet d’éviter des erreurs de calcul.

Tu veux réviser 2x plus vite ?

Découvre les offres des Bons Profs avec :