Grundlagen der Programmiersprache C

uint8_t r = 0x5A;
r |= 0x01;
r &= ~0x10;
r ^= 0x0F;
printf("0x%02X\n", r);

uint8_t ist ein vorzeichenloser 8-Bit-Ganzzahltyp. Welche Ausgabe erzeugt der obige Code bei der Ausführung?

  1. A0x44
  2. B0x4F
  3. C0x54
Antwort und Erläuterung anzeigen

Antwort: A. 0x44

0x5A ist binär 0101 1010. |= 0x01 setzt Bit 0 auf 1, was 0101 1011 (0x5B) ergibt, und &= ~0x10 setzt Bit 4 auf 0, was 0100 1011 (0x4B) ergibt. Das abschließende ^= 0x0F invertiert die unteren 4 Bit, sodass 0100 0100, also 0x44, entsteht. Die Aufgaben sind verteilt: | setzt Bits auf 1, die Kombination aus & und ~ setzt Bits auf 0, und ^ invertiert Bits.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Grundlagen der Programmiersprache C

  1. uint8_t ist ein vorzeichenloser 8-Bit-Ganzzahltyp. Welche Ausgabe erzeugt der obige Code, der x zehnmal erhöht, bei der Ausführung?
  2. unsigned char habe 8 Bit und int 32 Bit. Welche Ausgabe erzeugt der obige Code bei der Ausführung?
  3. uint8_t sei ein vorzeichenloser 8-Bit-Ganzzahltyp und int habe 32 Bit. Was ergibt die Ausführung des obigen Codes?
  4. int und unsigned int haben 32 Bit. Was ergibt die Ausführung des obigen Codes?
  5. unsigned int habe 32 Bit. Wie verhält sich der obige Code bei der Ausführung?