Le système binaire
Le système binaire
Objectifs cantonaux : O2.3. Semaine dédoublée (×2, groupes A/B séparés).
Cours complet sur la plateforme Runestone de Cédric Donner : Le système binaire.
Après la base 10 et la base 5, on arrive à la base qui compte vraiment en informatique : la base 2, ou système binaire.
Pourquoi seulement deux symboles ?
▷ Un choix physique, pas mathématique
D’un point de vue physique, il est beaucoup plus simple de construire des circuits qui ne peuvent être que dans deux états clairement distinguables (le courant passe ou ne passe pas, une charge est positive ou négative) que des circuits à dix états stables. C’est pour cette raison que les ordinateurs représentent et manipulent toute l’information avec seulement deux symboles : 0 et 1.
Construire la base 2
Le principe est exactement le même qu’en base 5 : des « billets » dont la valeur est une puissance de la base, avec un nombre maximal de billets par catégorie.
◈ Valeurs des billets en base 2
- \(2^0 = 1\)
- \(2^1 = 2\)
- \(2^2 = 4\)
- \(2^3 = 8\)
- \(2^4 = 16\)
- \(2^5 = 32\)
- \(2^6 = 64\)
- \(2^7 = 128\)
En binaire, on ne dispose que de zéro ou une carte de chaque valeur — dès qu’on en aurait deux, on les échange contre une carte de la catégorie supérieure.
Le nombre binaire \(10011_2\) utilise une carte de \(2^4\), aucune carte de \(2^3\) ni \(2^2\), une carte de \(2^1\) et une carte de \(2^0\) :
\(1\cdot 2^4 + 0\cdot 2^3 + 0\cdot 2^2 + 1\cdot 2^1 + 1\cdot 2^0 = 16 + 2 + 1 = 19\)
Donc \(10011_2 = 19_{10}\).
▷ À retenir
L’alphabet du système binaire est \(\{0, 1\}\). S’il y a un 1 à la \(i\)-ième position depuis la droite, cela signifie qu’on utilise la carte \(2^{i-1}\). S’il y a un 0, cette carte n’est pas utilisée.
Python et le binaire
Python fournit des fonctions pour convertir automatiquement entre bases — utile pour vérifier un calcul fait à la main.
◈ Syntaxe — Conversions
# décimal → binaire
decimal = 21
binaire = bin(decimal)
print("La notation binaire de", decimal, "est", binaire)
# binaire → décimal (le "2" indique que le texte est écrit en base 2)
binaire = "11000110"
decimal = int(binaire, 2)
print("Le mot binaire", binaire, "représente le nombre", decimal)Les mains à la pâte
- Déterminez la valeur décimale des nombres binaires \(101_2\), \(10_2\), \(10101_2\) et \(1101101_2\).
- Comptez de 0 à 16 en binaire (indice : dès qu’un chiffre atteindrait 2, il repasse à 0 et on augmente le chiffre suivant de 1).
- Décrivez une méthode pour additionner deux nombres écrits en représentation binaire, en alignant les colonnes de même valeur — puis appliquez-la à \(101_2 + 11_2\).
- Vérifiez vos réponses avec les fonctions
bin(...)etint(..., 2)vues ci-dessus.