Énoncé
Lire un entier N positif ou nul. Afficher son écriture binaire sous forme de chaîne, sans fonction de conversion de base.
Exemples et cas limites
Saisissez ces valeurs dans la console pour vérifier votre résultat :
Entrée
N = 13
Sortie attendue
1101
Entrée
N = 0
Sortie attendue
0
Entrée
N = 1
Sortie attendue
1
Code algorithmique
| 1 | algorithme decimal_binaire |
| 2 | debut |
| 3 | repeter |
| 4 | ecrire("N = ") |
| 5 | lire(n) |
| 6 | jusqua n ≥ 0 |
| 7 | // compléter le traitement demandé dans l’énoncé. |
| 8 | fin |
| 1 | algorithme decimal_binaire |
| 2 | debut |
| 3 | repeter |
| 4 | ecrire("N = ") |
| 5 | lire(n) |
| 6 | jusqua n ≥ 0 |
| 7 | reste ← n |
| 8 | binaire ← "" |
| 9 | si n = 0 alors |
| 10 | binaire ← "0" |
| 11 | fin si |
| 12 | tant_que reste > 0 faire |
| 13 | binaire ← convch(reste mod 2) + binaire |
| 14 | reste ← reste div 2 |
| 15 | fin_tant_que |
| 16 | ecrire_nl(binaire) |
| 17 | fin |
Méthode
- Diviser successivement par 2.
- Ajouter chaque reste au début de la chaîne.
Comprendre la correction
Déroulement sur un exemple
- Pour N = 13, les divisions par 2 donnent les quotients 6, 3, 1 puis 0, et les restes 1, 0, 1 puis 1.
- En ajoutant chaque reste devant la chaîne, binaire devient "1", "01", "101" puis "1101".
- On vérifie : 1 × 8 + 1 × 4 + 0 × 2 + 1 = 13. Le résultat est la chaîne "1101".
Erreurs à éviter
- Ajouter les restes à droite inverserait l’ordre des bits.
- Pour N = 0, affectez "0" explicitement : la boucle ne construit aucun caractère.