Systèmes embarqués et firmware
Quelle condition C teste correctement si le bit 5 du registre d'entrée in vaut 1 ?
- Aif (in | (1 << 5))
- Bif (in == 5)
- Cif (in & (1 << 5))
Afficher la réponse et l'explication
Réponse : C. if (in & (1 << 5))
« in & (1 << 5) » met à 0 tous les bits sauf le bit 5 : la valeur vaut 32 (non nul, donc vrai) si le bit 5 vaut 1, et 0 (faux) sinon. En C, toute valeur non nulle étant vraie, cette expression s'utilise directement comme condition d'un if. Pour obtenir 1 ou 0, on écrit « (in >> 5) & 1 ». Avec OR, le résultat est toujours non nul et ne teste rien.
Continuer : 9 autres questions sur Systèmes embarqués et firmware