Système binaire

Voici un exemple de programme assez complexe sous forme de mini projet. Les objectifs sont multiples: utiliser des variables, tableaux, index, construire des boucles, effectuer des lectures de valeurs avec vérification, manipuler des macros, comprendre le codage binaire, programmer une addition binaire.

Difficulté
5/5

But du programme

Lire 2 valeurs comprises entre 0 et 255, les convertir en binaire, effectuer l’addition en binaire. Si le résultat est correct (pas de débordement) le convertir en entier et l’afficher, sinon afficher un message.

Le programme est décomposé en plusieurs macros réalisant chacune une tâche assez simple. Chaque conception de macro donne lieu à un exercice.

Lecture contrôlée

Réaliser une macro LitEtTeste qui demande à l’utilisateur une valeur entre 0 et 255. Si la saisie n’est pas conforme, la question est reposée. La valeur est rangée dans une variable y.

Conversion entier en tableau de bits

Réaliser une macro LitEtConvertit qui convertit la valeur d’une variable x en binaire dans un tableau de taille 8 nommé bin . Le principe de l’algorithme consiste diviser x successivement par 2 et de stocker le reste de chaque division dans le tableau.

Addition en binaire

Réaliser une macro AddaEtb qui effectue l’addition de 2 nombres binaires représentés dans des tableaux a et b (de taille 8). Deux résultats sont obtenus : la somme est calculée dans un tableau c de même taille et une retenue r qui vaut 1 si le résultat dépasse la capacité de représentation en 8 bits.

Exemple de l’addition en binaire de 34 avec 71.

Conversion tableau de bits en entier

Réaliser une macro qui convertit un tableau c de valeurs binaires dans une variable entière res. Le principe de l’algorithme consiste à parcourir les valeurs (binaires) du tableau en les multipliant par les puissances successives de 2 et en accumulant les résultats.

Programme complet

Réaliser un programme qui:
  1. lit 2 valeurs comprises entre 0 et 255 ;
  2. les convertit en binaire ;
  3. effectue l’addition en binaire ;
  4. en fonction du résultat
    • correct : le convertit en entier et l’affiche ;
    • incorrect (débordement) : affiche un message.

Voici des exemples d’exécution avec les deux cas. A noter que sur cette vidéo, les détails des différentes étapes de calcul ne sont pas visibles. Seuls les valeurs à additionner et le résultat sont présentées.

Solution