0Pricing
C Academy · Lektion

Bitweise Operatoren

AND, OR, XOR, NOT

Bitweise Operatoren ist eine kostenlose C Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des C Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der C Academy-Kurs umfasst insgesamt 4 Lektionen.

Arbeiten auf Bitebene

Ganzzahlen werden als Folgen von Bits gespeichert. Mit den bitweisen Operatoren können Sie diese Bits in C direkt verarbeiten.

Die vier grundlegenden Operatoren sind AND &, OR |, XOR ^ und NOT ~.

#include <stdio.h>

int main(void) {
    unsigned a = 12;
    unsigned b = 10;
    printf("a & b = %u\n", a & b);
    return 0;
}

Bitweises AND

Der Operator & setzt ein Ergebnisbit nur dann auf 1, wenn beide Eingabebits 1 sind.

Für 12 (1100) und 10 (1010) lautet das Ergebnis 8 (1000).

#include <stdio.h>

int main(void) {
    unsigned a = 12, b = 10;
    printf("%u & %u = %u\n", a, b, a & b);
    return 0;
}

Bitweises OR

Der Operator | setzt ein Ergebnisbit auf 1, wenn mindestens eines der Eingabebits 1 ist.

12 (1100) OR 10 (1010) ergibt 14 (1110).

#include <stdio.h>

int main(void) {
    unsigned a = 12, b = 10;
    printf("%u | %u = %u\n", a, b, a | b);
    return 0;
}

Bitweises XOR

Der Operator ^ (exklusives OR) setzt ein Ergebnisbit auf 1, wenn sich die Eingabebits unterscheiden.

12 (1100) XOR 10 (1010) ergibt 6 (0110).

#include <stdio.h>

int main(void) {
    unsigned a = 12, b = 10;
    printf("%u ^ %u = %u\n", a, b, a ^ b);
    return 0;
}

Bitweises NOT

Der Operator ~ invertiert jedes Bit. Bei vorzeichenlosen Werten besteht ~0 aus lauter Einsen und entspricht dem Maximalwert.

#include <stdio.h>

int main(void) {
    unsigned char x = 0;
    printf("~0 as 8-bit = %u\n", (unsigned char)~x);
    return 0;
}

Bits ausgeben

Eine Hilfsfunktion, die die Binärdarstellung eines Bytes ausgibt, erleichtert das Verständnis bitweiser Ergebnisse. Wir prüfen jedes Bit vom höchsten zum niedrigsten.

#include <stdio.h>

void print_bits(unsigned char v) {
    for (int i = 7; i >= 0; i--) {
        putchar((v >> i) & 1 ? '1' : '0');
    }
    putchar('\n');
}

int main(void) {
    print_bits(12);
    print_bits(10);
    return 0;
}

XOR-Tausch

XOR hat eine interessante Eigenschaft: Sie können zwei Ganzzahlen ohne temporäre Variable vertauschen.

Wenden Sie XOR dreimal an, um die Werte auszutauschen.

#include <stdio.h>

int main(void) {
    int a = 5, b = 9;
    a = a ^ b;
    b = a ^ b;
    a = a ^ b;
    printf("a=%d b=%d\n", a, b);
    return 0;
}

XOR mit sich selbst

Jeder Wert, der mit sich selbst per XOR verknüpft wird, ergibt 0; jeder Wert, der mit 0 per XOR verknüpft wird, bleibt unverändert.

Diese Identitäten ermöglichen den XOR-Tausch und viele weitere Tricks.

#include <stdio.h>

int main(void) {
    int x = 42;
    printf("x ^ x = %d\n", x ^ x);
    printf("x ^ 0 = %d\n", x ^ 0);
    return 0;
}

Bitweise vs. logische Operatoren

Verwechseln Sie & nicht mit && und | nicht mit ||.

  • Bitweise Operatoren arbeiten mit jedem Bit der Operanden.
  • Logische Operatoren werten Wahrheitswerte aus und geben 0 oder 1 zurück.
#include <stdio.h>

int main(void) {
    printf("2 & 1 = %d\n", 2 & 1);
    printf("2 && 1 = %d\n", 2 && 1);
    return 0;
}

Operatoren kombinieren

Bitweise Operatoren lassen sich kombinieren, um komplexe Bedingungen auszudrücken. Hier behalten wir die Bits, die in a, aber nicht in b gesetzt sind.

#include <stdio.h>

int main(void) {
    unsigned a = 0b1111;
    unsigned b = 0b0101;
    unsigned only_a = a & ~b;
    printf("only_a = %u\n", only_a);
    return 0;
}

Parität mit XOR prüfen

Wenn Sie alle Bits per XOR verknüpfen, erhalten Sie die Parität, also die Information, ob die Anzahl der gesetzten Bits ungerade ist. Reduzieren Sie den Wert wiederholt.

#include <stdio.h>

int main(void) {
    unsigned v = 0b1011;
    int parity = 0;
    while (v) {
        parity ^= (v & 1);
        v >>= 1;
    }
    printf("parity = %d\n", parity);
    return 0;
}

Schnelltest

Testen Sie Ihr Wissen über bitweise Operatoren.

Zusammenfassung

Sie haben die bitweisen Operatoren kennengelernt:

  • & AND behält Bits, die in beiden Operanden gesetzt sind.
  • | OR behält Bits, die in mindestens einem Operanden gesetzt sind.
  • ^ XOR behält Bits, die sich unterscheiden.
  • ~ NOT invertiert alle Bits.
  • Bitweise Operatoren unterscheiden sich von den logischen Operatoren && und ||.

Häufig gestellte Fragen

Ist die Lektion „Bitweise Operatoren“ kostenlos?

Ja — der vollständige Text von „Bitweise Operatoren“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des C Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der C Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Bitweise Operatoren“?

AND, OR, XOR, NOT Du übst C Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um C Academy zu starten?

Keine Vorkenntnisse erforderlich. C Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „Bitweise Operatoren“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser C Academy-Lektion Code schreiben und ausführen?

Ja. Jede C Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Bitweise Operatoren
  2. Shifts
  3. Bitmasken und Flags
  4. Praktische Bit-Tricks
← Zurück zu C Academy