Conversions

Binaire → Décimal

Pour convertir un nombre binaire vers son homologue décimal, il suffit de multiplier la valeur binaire par son poids.

Prenons par exemple le nombre b11000111.

128 = 2⁷64 = 2⁶32 = 2⁵16 = 2⁴8 = 2³4 = 2²2 = 2²1 = 2⁰
11000111

En appliquant la formule, nous obtenons : 2^7+2^6+2^2+2^1+2^0 = 128+64+4+2+1 = 199_{10}


Binaire → Octal

La conversion du binaire vers l’octal est plus simple, car 8 est une puissance de 2. La conversion se fait en groupant les bits en triplets, en partant de la droite.

Reprenons le nombre 11000111. En le divisant en triplets, nous obtenons 011 000 111.

011_2 = 3_8000_2 = 0_8111_2 = 7_8

Le nombre 110001112 s’écrira donc 3078, ou 0307.

Binaire → Hexadécimal

La conversion du binaire vers de l’hexadécimal suit le même principe que celui du binaire vers de l’octal, mis à part le groupement qui se fait en nibbles (4 bits), toujours de droite à gauche.

Reprenons une dernière fois le nombre 110001112. En le divisant en nibbles, nous obtenons 1100 0111.

1100_2 = C_{16}0111_2 = 7_{16}

Le nombre 110001112 s’écrira donc C716 ou 0xC7.


Décimal → Binaire

La conversion d’un nombre décimal vers un nombre binaire revient à faire une division euclidienne (division entière avec reste) par 2, en notant à chaque fois le reste obtenu.

Il existe un « truc » pour réaliser rapidement la conversion.

Prenons le nombre 158310 à convertir en binaire.

Si le nombre décimal est impair, retirez 1 et posez-le dans la colonne à coté. Si le nombre est pair, posez un 0 dans la colonne. Ensuite, divisez le nombre par 2. Recommencez l’opération jusqu’au bout. La dernière division mènera toujours à 1, qui est le dernier reste. Le nombre converti se lira alors de bas en haut.

/2restesens de lecture
15831
7911|
3951|
1971|
980|
471|
231|
111|
51|
21|
11|

1583 = b110 0010 1111.


Octal → Binaire et Hexadécimal → Binaire

Convertir de l’octal en binaire est beaucoup plus simple. En effet, chaque chiffre composant le nombre octal est un triplet de bits. La conversion se fait presque mentalement.

Prenons le nombre 0562.

octal562
binaire101110010

0562 = 101 110 0102.

De même, le passage de l’hexadécimal se fait en reprenant chaque chiffre et en le convertissant en nibble correspondant.

hexaD8
binaire11011000

0xD8 = 1101 10002

Décimal → toute base

La conversion d’un nombre décimal en une base ésotérique (= n’importe laquelle) est beaucoup plus complexe. Il s’agit de faire des divisions euclidiennes successives, tout en reportant les restes obtenus, jusqu’à ce qu’on ne puisse plus diviser les dividendes.

L’exemple suivant sera plus clair : convertir 1248 en base 8.

struct-conversions

Exemple pour la base 8 :

Attention, le sens de lecture se fait de droite à gauche.

Ce qui donne comme résultat : 1248 = 02340.

Cependant, pour convertir un nombre décimal en octal ou hexadécimal, il existe une méthode plus rapide : convertir le nombre décimal en binaire, avant de regrouper les différents bits en triplets (pour convertir en octal), ou en nibbles (pour convertir en hexadécimal).

Print Friendly, PDF & Email