Basis van programmeren in C
uint8_t r = 0x5A;
r |= 0x01;
r &= ~0x10;
r ^= 0x0F;
printf("0x%02X\n", r);uint8_t is een 8-bits integertype zonder teken. Wat is de uitvoer als de bovenstaande code wordt uitgevoerd?
- A0x44
- B0x4F
- C0x54
Antwoord en toelichting tonen
Antwoord: A. 0x44
0x5A is binair 0101 1010. |= 0x01 zet bit 0 op 1, wat 0101 1011 (0x5B) geeft, en &= ~0x10 zet bit 4 op 0, wat 0100 1011 (0x4B) geeft. De laatste ^= 0x0F inverteert de onderste 4 bits, wat 0100 0100 geeft, dus 0x44. | zet bits op 1, & in combinatie met ~ zet bits op 0, en ^ inverteert bits.