🔢 Entiers Positifs en Binaire et Hexadécimal

Comprendre les systèmes de numération et les conversions entre bases

📊 Rappel : Les bases dans la vie courante

🎯 Système de notation en colonnes
Notre système de notation repose sur une disposition en colonnes. Nous comptons avec 10 symboles allant de 0 à 9 que l'on nomme chiffre. Une fois que nous avons atteint le chiffre 9, si l'on souhaite rajouter 1, on se rend compte que l'on n'a pas de chiffres supérieurs. On crée ainsi une colonne à gauche qui contiendra un chiffre allant de 1 à 9 en remettant le chiffre de la colonne originelle (ou les suivantes) à 0.
💡 Exemple : 426 est composé des chiffres 4, 2 et 6 représentés dans les colonnes des centaines, dizaines et unités.
Notre quotidien est entouré de nombres, que ce soit pour les heures qui passent, les notes, le nombre d'œufs dans une boîte. Ils sont partout et font partie de nos vies sans même que l'on s'en rende compte. Mais il existe une quasi infinité de bases !
🥚
Base 12 - Douzaines
Les boîtes d'œufs sont en base 12, issue du fait qu'historiquement nous suivons le compte des œufs avec le nombre de phalanges que l'on a sur une main (sans compter le pouce car celui-ci pointe les phalanges pour compter).
Base 60 - Temps
Les heures sont divisées en base 60. Il était plus simple de diviser les heures en 60 minutes pour calculer les durées plus facilement. Cela provient des babyloniens qui comptaient dans un système sexagésimal.
📺
Base 4 - Les Shadoks
Les personnages de ce dessin animé comptent avec 4 chiffres pour écrire leurs nombres : GA, BU, ZO, MEU. Un système de numération créatif et amusant !
🎵
Base 16 - Bibi-binaire
Système conçu par le compositeur Boby Lapointe en 1968. Il utilise des consonnes et des voyelles : H, B, K, D et A, E, O, I. L'avantage : on peut chanter les nombres !
💻
Base 8 - Octal
Base contenant 8 symboles allant de 0 à 7. Cette base servait aux informaticiens qui développaient en langage machine pour réduire le nombre de bits à écrire.
$B_{8} = \{0,1,2,3,4,5,6,7\}$

📚 Définitions Fondamentales

🎯 Qu'est-ce qu'une base ?
Une base correspond au nombre de symboles qui permettent de représenter les chiffres ou les nombres.
💡 Base décimale : $B_{10} = \{0,1,2,...,9\}$
Pourquoi le Binaire ?
En informatique, il a été décidé d'utiliser le binaire car une machine peut facilement détecter la différence entre deux états. Un processeur est composé de transistors qui traitent deux états : ouverts et fermés à la manière d'un interrupteur.
🔢
Base Binaire
Le binaire, ou représentation en base 2, est un moyen de représenter les nombres avec 2 symboles : 0 ou 1.
$B_{2} = \{0,1\}$
📊
Bits et Octets
On nomme bit les chiffres de la représentation en base 2 et un ensemble de 8 bits est appelé un byte ou octet.
🤔 Question de réflexion : Combien de nombres peut-on représenter avec n bits ?

🔄 Compter en Base 2

🎯 Principe du comptage binaire
Pour compter en base 2, on opère de la même manière qu'en base 10. On a une colonne qui peut valoir 0 ou 1. Une fois que la colonne atteint 1, on rajoute une colonne à sa gauche à 1 et l'on passe la colonne de droite à 0.

🔢 Comment passer de base 2 à base 10 ?

📝 Rappel : Compter en base 10
$154_{(10)} = 1\times10^{2} + 5\times10^{1} + 4\times10^{0}$
💻 Exemple de conversion binaire → décimal
$1101_{(2)} = 1\times2^{3} + 1\times2^{2} + 0\times2^{1} + 1\times2^{0}$
$1101_{(2)} = 8 + 4 + 0 + 1 = 13_{(10)}$
⚠️ Important : À partir de maintenant, pour écrire un nombre si la base n'est pas explicite, il faut la préciser :
  • $154_{(10)}$ avec la base écrite sous le nombre en parenthèses
  • $\overline{154}^{(10)}$ avec le nombre surligné et la base indiquée entre parenthèses
✏️ Exercice : Convertir de binaire en décimal
  • $1101_{(2)}$
  • $1001_{(2)}$
  • $1010_{(2)}$
  • $1111_{(2)}$

🔄 Comment passer de base 10 à base 2

➗ Méthode des divisions successives
Pour passer de la base 10 à la base 2, on peut utiliser la méthode des divisions successives. De la même manière que l'on écrit en addition de puissances de bases, on peut réaliser l'opération inverse pour trouver la représentation binaire.
💻 Exemple : Convertir 29 en binaire
29| 2
  |---
1 | 14 | 2
       |---
     0 | 7 | 2
           |---
         1 | 3 | 2
               |---
             1 | 1 | 2
                   |---
                 1 | 0
On divise successivement le nombre à convertir par 2. Chaque reste correspond au nombre dans la représentation et chaque quotient est à diviser à la suite par 2. On répète ces opérations jusqu'à ce que le quotient soit 0 et le reste 1.
📊 Résultat : $29_{10} = 11101_{2}$
Vérification : $11101_{2} = 1×2^{4} + 1×2^{3} + 1×2^{2} + 0×2^{1} + 1×2^{0} = 16 + 8 + 4 + 0 + 1 = 29_{10}$
✏️ Exercice : Convertir de décimal en binaire
  • $27_{10}$
  • $14_{10}$
  • $42_{10}$
  • $33_{10}$
➖ Méthode des soustractions successives
Une autre méthode utilisable est la méthode des soustractions successives. Pour ce faire, il suffit de se munir d'un tableau de puissances de 2 et de savoir calculer toutes les puissances de 2.

📊 Tableau des puissances de 2

$2^{n}$ $2^{n-1}$ $2^{n-2}$ ... $2^{2}$ $2^{1}$ $2^{0}$
💻 Exemple : Convertir 42 en binaire
On choisit 64 > 42 donc on aura un tableau de 7 cases.
Est-ce que 42 ≥ 64 ? Non, on met 0 dans la case du tableau.
Est-ce que 42 ≥ 32 ? Oui, on met 1 dans la case du tableau. 
Reste : 42 - 32 = 10
Est-ce que 10 ≥ 16 ? Non, on met 0 dans le tableau.
Est-ce que 10 ≥ 8 ? Oui, on met 1 dans le tableau.
Reste : 10 - 8 = 2
Et ainsi de suite...
$2^{6} = 64$ $2^{5} = 32$ $2^{4} = 16$ $2^{3} = 8$ $2^{2} = 4$ $2^{1} = 2$ $2^{0} = 1$
0 1 0 1 0 1 0
📊 Résultat : $42_{10} = 101010_{2}$
Vérification : $2^{5} + 2^{3} + 2^{1} = 32 + 8 + 2 = 42$

🔢 Hexadécimal

📖 Définition
En informatique, une autre base très importante est la base hexadécimale (ou hex). Cette base représente les nombres avec 16 symboles.

Cette base est très utile pour divers usages notamment :
  • La représentation d'adresse mémoire
  • La représentation des couleurs

On peut noter cette base : $B_{16} = \{0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F\}$

📊 Table de correspondance Décimal ↔ Hexadécimal

Décimal Hexadécimal Décimal Hexadécimal
0088
1199
2210A
3311B
4412C
5513D
6614E
7715F
💡 Important : On représente chaque symbole de la représentation en base hexadécimale par un ensemble de 4 bits.

🔄 Convertir en base hexadécimale

➗ Méthode des divisions successives
À l'instar de la base 2 (et de toutes les bases), pour convertir on peut utiliser la méthode des divisions successives comme développé pour la partie binaire mais en divisant successivement par 16.
💻 Exemple : Convertir 255 en hexadécimal
255 ÷ 16 = 15 reste 15 (F)
 15 ÷ 16 = 0  reste 15 (F)

Résultat : 255₁₀ = FF₁₆
🔄 Passer par la base 2
Une autre méthode serait de convertir le nombre que nous avons en base 10 en binaire. Ainsi, on regroupe par paquets de 4 bits en partant du bit de poids faible et en rajoutant des 0 si jamais le paquet le plus à droite contient moins de 4 bits. Enfin, on associe chaque paquet de 4 bits à son équivalent en base 16.
💻 Exemple : Convertir 430₁₀ en hexadécimal
1. On a 430₁₀. On cherche sa représentation en base 2.
   430₁₀ = 110101110₂

2. On rajoute les 0 à gauche pour créer des paquets de 4 :
   000110101110₂

3. On associe les bits correspondants :
   0001₂ = 1₁₆
   1010₂ = A₁₆ 
   1110₂ = E₁₆

4. Résultat : 430₁₀ = 1AE₁₆

🔄 Passage de la base hexadécimale à la base décimale

⚡ Puissances de 16
On peut en connaissant les puissances de 16, réaliser les additions de puissances de 16 correspondant à chaque symbole du nombre écrit en hexadécimal. Pour rendre cela compréhensible, on peut remplacer chaque symbole hexadécimal par sa représentation en base 10.
💻 Exemple : Convertir 1AE₁₆ en décimal
1₁₆ = 1₁₀ ; A₁₆ = 10₁₀ ; E₁₆ = 14₁₀

1AE₁₆ = 1×16² + 10×16¹ + 14×16⁰
      = 256₁₀ + 160₁₀ + 14₁₀ 
      = 430₁₀
🔄 Passage par la base 2
La première étape est de convertir chaque symbole du nombre en base hexadécimale en base 2. Ensuite, simplement, on convertit de la base 2 à la base décimale comme vu précédemment.
💻 Exemple : Convertir 1AE₁₆ en décimal
1. Conversion hex → binaire :
   1AE₁₆ = 0001 1010 1110₂

2. Conversion binaire → décimal :
   000110101110₂ = 1×2⁸ + 1×2⁷ + 1×2⁵ + 1×2³ + 1×2² + 1×2¹
                  = 256 + 128 + 32 + 8 + 4 + 2
                  = 430₁₀

📊 Table de correspondance Hexadécimal ↔ Binaire

Hexadécimal Binaire Hexadécimal Binaire
0000081000
1000191001
20010A1010
30011B1011
40100C1100
50101D1101
60110E1110
70111F1111
✏️ Exercices
Exercice 1 : Conversion de l'hexadécimal au décimal :
Convertir le nombre hexadécimal 1F3₁₆ en décimal.

Exercice 2 : Conversion du décimal à l'hexadécimal :
Convertir le nombre décimal 393₁₀ en hexadécimal.