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?

  1. A0x44
  2. B0x4F
  3. 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.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Basis van programmeren in C

  1. uint8_t is een 8-bits integertype zonder teken. Wat is de uitvoer als de bovenstaande code, die x tien keer verhoogt, wordt uitgevoerd?
  2. unsigned char is 8 bits en int is 32 bits. Wat is de uitvoer als de bovenstaande code wordt uitgevoerd?
  3. uint8_t is een 8-bits integertype zonder teken en int is 32 bits. Wat is het resultaat als de bovenstaande code wordt uitgevoerd?
  4. int en unsigned int zijn 32 bits. Wat is het resultaat als de bovenstaande code wordt uitgevoerd?
  5. unsigned int is 32 bits. Welke beschrijving van het gedrag bij het uitvoeren van de bovenstaande code is juist?