Conversion en base n - Calculateur en ligne

Convertir un nombre avec ou sans décimales d'une base vers une autre base. Ce calculateur utilise les bases binaire, décimale, hexadécimale, octale et toute base de 2 à 62.

séparateur décimal : .

Avez-vous des suggestions pour améliorer cette page ?

Utilisation de ce calculateur

Les chiffres utilisés
Pour les bases de 2 à 10, on utilise évidemment les chiffres arabes 0123...789.

Pour les bases de 10 à 36, on utilise en plus, les symboles ABCD...XYZ (lettres en majuscules) qui représentent les nombres en base décimale 11,12,13 ...34,35,36. Pour ces bases (10 à 36), si vous saisissez des nombres avec des lettres en minuscules, elle seront automatiquement converties en lettres majuscules.

Pour les bases de 36 à 62, on complète avec les lettres en minuscules (abcdef...xyz). Par exemple, pour la base 62, on utilise les chiffres : 0123456789 ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz soit, 62 symboles au total. Notez que dans ce cas, la casse est importante. Par exemple, A=10 mais a=37.

Les systèmes de numération

Le système décimal
Le système décimal (ou à base 10) qui nous est familier, utilise 10 symboles (0, 1, 2, 3 ... 8, et 9) pour représenter n'importe quel nombre. Dans ce système, les puissances de 10 occupent une position centrale et sont utilisées pour former les nombres,

`10^0, 10^1, 10^2, 10^3...` c'est à dire `1, 100, 100, 1000...`

Le nombre 278 peut s'écrire ainsi,

`278 = 2*10^2 + 7*10^1 + 8*10^0`

On remarque que,
le chiffre des unités est multiplié par `10^0`,
le chiffre des dizaines est multiplié par `10^1`,
le chiffre des centaines est multiplié par `10^2`,
le chiffre des milliers est multiplié par `10^3`et ainsi de suite.

Le système binaire
Le système binaire (ou à base 2), largement utilisé en informatique, utilise deux symboles (0 et 1) pour représenter un nombre quelconque. Voici quelques exemples,

101 en base 2 = 5 en base 10 (`= 1*2^2 + 0*2^1 + 1*2^0`)

10011 en base 2 = 19 en base 10 (`= 1*2^4 + 0*2^3 + 0*2^2 + 1*2^1 + 1*2^0`)

De la même manière, concernant le nombre en base binaire,
le premier chiffre (en partant de la droite) est multiplié par `2^0`,
le deuxième chiffre est multiplié par `2^1`,
le troisième chiffre est multiplié par `2^2`,
le quatrième chiffre est multiplié par `2^3` et ainsi de suite.

Le système hexadécimal
Le système hexadécimal (ou à base 16) utilise 16 symboles 012...89ABCDEF pour représenter les nombres. A noter que les symboles A jusqu'à F représentent les valeurs de 11 à 15. On aurait d'ailleurs pu aussi bien choisir ab...ef ou adopter d'autres symboles.

Exemples de nombres en base hexadécimale,

125 en base 16 = 293 en base 10 (`= 1*16^2 + 2*16^1 + 5*16^0`)

1fa6 en base 16 = 8102 en base 10 (`= 1*16^3 + 15*16^2 + 10*16^1 + 6*16^0`)

On retrouve le même schéma que pour les autres bases, concernant le nombre en base hexadécimale,
le premier chiffre (en partant de la droite) est multiplié par `16^0`,
le deuxième chiffre est multiplié par `16^1`,
le troisième chiffre est multiplié par `16^2`,
le quatrième chiffre est multiplié par `16^3` et ainsi de suite.

Convertir un nombre de la base n vers la base 10 ?

Convertissons le nombre 1206 de la base 9 vers la base 10.

Selon la formule utilisée ci-dessus (généralisée à la base 9), on doit utiliser les puissance de 9 comme suit,

1206 en base 9 = 897 en base 10 (`= 1*9^3 + 2*9^2 + 0*9^1 + 6*9^0`)

Un autre exemple: convertissons le nombre A160B de la base 12 vers la base 10.

Le sytème à base 12 utilise les chiffres suivants : 0, 1, 2 ... 8,9, A (valeur 10) et B (valeur 11).

On peut donc convertir comme suit,

A160B en base 12 = 209963 en base 10 (`= 10*12^4+ 1*12^3 + 6*12^2 + 0*12^1 + 11*12^0`)

Convertir un nombre de la base 10 vers la base n ?

Ecrire un nombre P en base n revient à trouver les coefficients des puissances successives de n tels que

`P = c_0 * n^0 + c_1 * n^1 + c_2 * n^2 +` ... avec `c_0, c_1, c_2...` les chiffres en base n de P.

Illustrons cela avec un exemple. Comment convertir 1205 vers la base 9 ?

On commence par écrire les puissances de 9. On s'arrête à la puissance immédiatement supérieure à notre nombre 1205 : `1 (9^0), 9 (9^1), 81 (9^2), 729 (9^3), 6561 (9^4 > 1205)`

On constate que `9^3 < 1205 < 9^4`. Nous savons d'ores et déjà que 1205 aura 4 chiffres en base 9 et va s'écrire sous la forme,

`\text{Equation (1): }1205 = a_3 * 9^3 + a_2 * 9^2 +a_1 * 9^1 + a_0 * 9^0` c'est à dire que 1205 est représenté par "`a_3a_2a_1a_0`" en base 9 avec,

`a_0, a_1, a_2, a_3` des chiffres de la base 9 c'est à dire des chiffres parmi 0,1, ...7 et 8.

On peut écrire l'équation (1) sous la forme,

`1205 = a_3 * 9^3 + r` avec r < `9^3` cela ne vous rappelle rien ? il s'agit de la division euclidienne de 1205 par `9^3` c'est à dire 729.

En faisant la division euclidienne, on obtient 1205 ÷ 729 = 1 reste 476

On a donc `a_3 = 1` et `r = a_2 * 9^2 + a_1 * 9^1 + a_0 * 9^0 = 476`

De même, on peut écrire,

`476 = a_2 * 9^2 + s` avec s < `9^2`, de la même manière, il s'agit de la division euclidienne de 476 par `9^2` c'est à dire 81.

En faisant la division euclidienne, on obtient 476 ÷ 81 = 5 reste 71

On déduit `a_2 = 5` et `s = a_1 * 9^1 + a_0 * 9^0 = 71`

On réitère la même chose, 71 ÷ 9 = 7 reste 8, on déduit, a_1 = 7 et a_0 = 8

On a prouvé successivement,
`a_3 = 1`
`a_2 = 5`
`a_1 = 7`
`a_0 = 8`

1205 en base 9 s'écrit 1578 en base 9.

Pour généraliser et récapituler les étapes de la méthode expliquée,

Pour convertir un nombre P de la base 10 vers la base n
- Ecrire les puissances de n (base cible)
- Encadrer P par 2 puisssances successives de n (au passage, cela détermine le nombre de chiffres de P en base n)
- Faire la division euclidienne de P par la puissance de n immédiatement inférieure à n (valeur basse de l'encadrement effectué dans l'étape ci-dessus)
- Le quotient de cette division est égale au premier chiffre de P (en partant de la gauche) en base n
- Répéter ces divisions en utilisant à chaque fois le reste comme nouveau dividende et la puissance immédiatement inférieure comme diviseur jusqu'à atteindre la puissance 1 de n c'est à dire n (comme diviseur) !

Convertir un nombre de la base n vers la base m ?

La méthode la plus simple est de passer par la base 10 à savoir:
- Convertir d'abord le nombre de la base n vers la base 10 en suivant la première méthode ci-dessus
- Convertir ensuite le nombre obtenu en base 10 vers la base m en suivant la seconde méthode ci-dessus

Exemple : convertir 1526 de la base 7 vers la base 2

1526 en base 7 = 608 en base 10
608 en base 10 = 1001100000 en base 2

On déduit,
1526 en base 7 = 1001100000 en base 2

Programmation

Python

Ce programme en python convertit un nombre écrit en base décimale vers une une autre base.


import string
digs = string.digits + string.ascii_letters

def int2base(x, base):
    if x < 0:
        signe = -1
    elif x == 0:
        return digs[0]
    else:
        signe = 1

    x *= signe
    chiffres = []

    while x:
        chiffres.append(digs[int(x % base)])
        x = int(x / base)

    if signe < 0:
        chiffres.append('-')

    chiffres.reverse()

    return ''.join(chiffres)

Voir aussi

Division euclidienne