Les bases (binaire2, octal8, hexadécimal16) vers décimale10

Binaire:
    chiffres: 0,1
    
    Exemple:
    10010001(2) = 1 x 27 + 1 x 24 + 1 x 20
              = 128    + 16     + 1 
              = 145(10)

Octal:
    chiffres: 0,1,2,3,4,5,6,7
    
    Exemple:
    1234(8) = 1 x 83 + 2 x 82 + 3 x 81 + 4 * 80 
           = 512    + 128    + 24     + 4
           = 668(10)

Décimale:
    chiffres: 0,1,2,3,4,5,6,7,8,9
    
    Exemple:
    1234(10) = 1 x 103 + 2 x 102 + 3 x 101 + 4 * 100 
            = 1000    + 200    + 30      + 4
            = 1234(10)

Hexadécimal:
    chiffres: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
    
    Exemple:
    12F4(16) = 1 x 163 + 2 x 162 + 15 x 161 + 4 * 160 
            = 4096    + 512    + 240      + 4
            = 4852(10)
			

Décimal10 vers les basesn

Voici une technique manuelle pour convertir un nombre décimal vers une base n. Cette technique fonctionne pour des nombres entiers plus grand que 0.

  1. Prenons un nombre décimal, exemple 83, et une base exemple 5.
  2. Trouvons les nombres exponentiels de la base 5. 50, 51, 52, 53, ..., soit 1, 5, 25, 125, 625.
  3. Trouvons le plus grand nombre exponentiel de base 5 égal ou plus petit au nombre décimal "83". Soit 25. 125 et 623 sont trop grand.
  4. Puisque 25 est égal à 5 exposant "2", le nombre final aura 3 positions (exposant 2, exposant 1, et exposant 0).
  5. Pour chaque exposant 2, 1 et 0, il faut effectuer une division entière avec cet exponentiel.
    1. 52 = 25, 83/25 = 3, reste 8
    2. 51 = 5, 8/5 = 1, reste 3
    3. 50 = 3, 3/1 = 3.
  6. On utilise le résultat entier de chaque résultat pour former le nombre 313(5).
  7. Pour vérifier notre réponse, on peut reconvertir le nombre 313(5) en base 10 en utilisant: 3*52 + 1*51 + 3*50 = 3*5 + 1*5 + 3*1 = 75 + 5 + 3 = 83(10)

Note: il est important de faire toutes les exposants, du plus grand jusqu'à l'exposant 0, pour avoir chaque position.

Voici quelques traces pour d'autres bases:

Base 2 (binaire): 
1, 2, 4, 8, 16, 32, 64, 128, 256, 512, ...

 64, 83/64 = 1, reste 19
 32, 19/32 = 0, reste 19
 16, 19/16 = 1, reste 3
  8.  8/3  = 0, reste 3
  4.  4/3  = 0, reste 3
  2.  2/3  = 1, reste 1
  1,  1/1  = 1.

Réponse: 1010011(2)

Base 8 (octale):
512 = 8*8*8  = 1000(8)
 64 =   8*8  = 100(8)
  8 =     8  = 10(8)
  1 =     1  = 1(8)
  
8*8,  83/64 = 1, reste 19
  8,  19/8  = 2, reste 3
  1,   3/1  = 3.

Réponse: 123(8)

Base 16 (hexadécimal):
256 = 16*16 = 100(16)
 16 =    16 = 10(16)
  1 =     1 = 1(16)

 16, 83/16 = 5, reste 3
  1,  3/1  = 3.

Réponse: 53(16)
Note: pour la base 16, il se peut que le résultat entier de la division soit 10, 11, 12, 13, 14 et 15. 
      Dans ce cas, il faut utiliser les lettres A, B, C, D, E et F respectivement.
      Par exemple, 31 (en base 10) convertit en hexadécimal est:
                   16, 31/16 = 1, reste 15. 
                    1, 15/16 = 15 ou le nombre "F"
                   31(10) = 1F(16)

Conversion automatique de base à base

Il est possible de convertir automatiquement certaine base. Par exemple la base 16 peut se convertir en base 4 ou 2 automatiquement. La base 8 peut se convertir en base 2. Pourquoi? Parce que 16 = 42 = 24 et 8 = 23. On pourrait donc en convertir une base 81, 27 ou 9 en base 3 assez facilement. On ne peut pas convertir automatiquement une base 16 vers une base 8 car 8^n != 16 (ou n est un entier). Par contre, on pourrait convertir une base 64 ou 512 en base 8.

Voici une table pour certaines bases. Il faut respecter les zéros.

Base 16   Base 4    Base 2
0          00       0000
1          01       0001
2          02       0010
3          03       0011
4          10       0100
5          11       0101
6          12       0110
7          13       0111
8          20       1000
9          21       1001
A          22       1010
B          23       1011
C          30       1100
D          31       1101
E          32       1110
F          33       1111

F A 4 (base 16) = 33 22 10 base 4 = 1111 1010 0100 base 2
  FA4 (base 16) =   332210 base 4 =   111110100100 base 2

Base octale vers base binaire

Base 8   Base 2
0         000
1         001
2         010
3         011
4         100
5         101
6         110
7         111

752 (base 8) = 111 101 010 (base 2) = 111101010 (base 2)