bit_unset : erreur de formatage de l'output?

bit_unset : erreur de formatage de l'output?

by Niels Marco Lachat -
Number of replies: 2

Bonjour, 

Je me demandais s'il n'y avait pas par hasard une erreur dans le formattage de l'output pour l'opération bit_unset.

En effet, le code pour afficher l'opération bit_unset est: show2(unset, value3) qui affiche un message formatté ainsi : "bit_unset(value3, index) = value2" ce qui ne semble pas très cohérent étant donné qu'on applique bit_unset à value2 et que la valeur résultante est value3.

Est-ce que c'est effectivement une erreur de formattage ou est-ce qu'il faut appliquer l'opération bit_unset sur value3 et ainsi la valeur résultante se trouve dans value2 (ce qui corrige le formattage mais ne semble pas très logique)?

Merci d'avance

In reply to Niels Marco Lachat

Re: bit_unset : erreur de formatage de l'output?

by Jean-Cédric Chappelier -

Pourquoi dites vous : « et que la valeur résultante est value3. » ?
(ce n'est pas une critique, juste pour comprendre la source de confusion).

Pour moi, lorsque que l'on vous dit « Mettez ici votre code pour bit_unset sur value2 », c'est que l'on doit opérer uniquement sur value2, c.-à-d. que « la valeur résultante est value2 », pas value3.

Nous utilisons au contraire value3 comme archive, justement pour pouvoir écrire le message (résultant de la macro show2() [les macros seront présentées bien plus tard dans le cours et il n'est pas attendu que vous les compreniez à ce stade]) :

 printf("bit_unset(0x%02x, %d) = 0x%02x\n", value3, k, value2);

Est-ce plus clair ?
Et désolé pour la confusion, bien involontaire.

In reply to Niels Marco Lachat

bit_unset : erreur de formatage de l'output?

by Niels Marco Lachat -
Effectivement, c'est plus clair comme ça. C'était bien une confusion sur le rôle des variables value2 et value3, mais je comprends la logique maintenant.
Merci pour l'explication