Exercices : le binaire
Exercices : le 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 : Entraînement — binaire.
Dernière séance d’entraînement sur la représentation binaire avant l’examen. Pas de nouvelle théorie : uniquement des exercices, à faire si possible sans calculatrice, puis à vérifier avec bin(...) / int(..., 2) en Python.
▷ Rappel express
- Billets binaires : \(2^0=1\), \(2^1=2\), \(2^2=4\), \(2^3=8\), \(2^4=16\), \(2^5=32\), \(2^6=64\), \(2^7=128\), … au maximum une seule carte par valeur.
- Avec \(n\) bits, on représente exactement \(2^n\) nombres différents, de \(0\) à \(2^n - 1\).
Conversion binaire → décimal
Déterminez la valeur décimale des nombres binaires suivants :
- \(1000_2\)
- \(10110_2\)
- \(100011_2\)
- \(1111111_2\) (remarquez : c’est \(2^7 - 1\))
Conversion décimal → binaire
En utilisant la méthode des « billets » (prendre le plus grand billet possible, soustraire, répéter avec le reste) :
- Convertissez 50 en binaire.
- Convertissez 100 en binaire.
- Convertissez 255 en binaire — que remarquez-vous sur le nombre de chiffres ?
! Piste pour 255
\(255 = 2^8 - 1\). Un nombre de la forme \(2^n - 1\) s’écrit toujours avec \(n\) chiffres, tous égaux à 1 — c’est le plus grand nombre représentable avec \(n\) bits.
Additions binaires
En posant les cartes et en échangeant deux cartes de même valeur contre une carte de la catégorie supérieure :
- \(1100_2 + 11_2\)
- \(10101_2 + 1011_2\)
- \(1111_2 + 1111_2\)
Dénombrement d’états
- Un capteur de température ne peut renvoyer que 4 états possibles distincts. Combien de bits faut-il au minimum pour les coder ?
- Une classe compte 24 élèves, chacun devant recevoir un numéro unique codé en binaire. Combien de bits faut-il au minimum ?
- Une carte mémoire dispose de 16 millions de circuits mémoire d’un bit. Combien d’états différents cette mémoire peut-elle représenter au total (la réponse peut simplement s’écrire sous forme de puissance de 2) ?
Pour vérifier vos réponses
# décimal → binaire
print(bin(255))
# binaire → décimal
print(int("11111111", 2))