Bases de la programmation en C
uint8_t r = 0x5A;
r |= 0x01;
r &= ~0x10;
r ^= 0x0F;
printf("0x%02X\n", r);uint8_t est un type entier non signé de 8 bits. Quelle est la sortie obtenue en exécutant le code ci-dessus ?
- A0x44
- B0x4F
- C0x54
Afficher la réponse et l'explication
Réponse : A. 0x44
0x5A s'écrit 0101 1010 en binaire. |= 0x01 met le bit 0 à 1 et donne 0101 1011 (0x5B), puis &= ~0x10 met le bit 4 à 0 et donne 0100 1011 (0x4B). Le dernier ^= 0x0F inverse les 4 bits de poids faible et donne 0100 0100, soit 0x44. | met des bits à 1, & combiné à ~ met des bits à 0, et ^ inverse des bits.
Continuer : 9 autres questions sur Bases de la programmation en C