Aufgabe 1: Bitweises UND
Gegeben sind zwei Ganzzahlen:
int a = 12; // 1100
int b = 10; // 1010
Berechne mithilfe einer Bitoperation das bitweise UND von a und b und gib das Ergebnis aus.
Musterlösung: Bitweises UND
#include <stdio.h>
int main() {
int a = 12;
int b = 10;
int result = a & b;
printf("Ergebnis: %d\n", result);
return 0;
}
Aufgabe 2: Bitweises ODER
Berechne das bitweise ODER der Zahlen 5 und 3 und gib das Ergebnis aus.
Musterlösung: Bitweises ODER
#include <stdio.h>
int main() {
int a = 5; // 0101
int b = 3; // 0011
printf("%d\n", a | b);
return 0;
}
Aufgabe 3: XOR verstehen
Berechne das bitweise XOR von 9 und 12 und gib das Ergebnis aus.
Musterlösung: XOR verstehen
#include <stdio.h>
int main() {
int a = 9; // 1001
int b = 12; // 1100
printf("%d\n", a ^ b);
return 0;
}
Aufgabe 4: Bit-Negation
Negiere alle Bits einer unsigned char-Variable mit dem Wert 10 und gib das Ergebnis aus.
Musterlösung: Bit-Negation
#include <stdio.h>
int main() {
unsigned char x = 10; // 00001010
unsigned char y = ~x;
printf("%u\n", y);
return 0;
}
Aufgabe 5: Bitverschiebung
Verschiebe die Zahl 32 um zwei Bits nach rechts und gib das Ergebnis aus.
Musterlösung: Bitverschiebung
#include <stdio.h>
int main() {
int x = 32; // 0010 0000
printf("%d\n", x >> 2);
return 0;
}
Aufgabe 6: Einzelnes Bit setzen
Schreibe Code, der in einer Zahl 0 das dritte Bit (von rechts, beginnend bei 0) auf 1 setzt.
Musterlösung: Einzelnes Bit setzen
#include <stdio.h>
int main() {
int x = 0;
x = x | (1 << 3);
printf("%d\n", x);
return 0;
}
Aufgabe 7: Prüfen, ob ein Bit gesetzt ist
Schreibe ein Programm, das prüft, ob bei einer Zahl n das Bit an Position k gesetzt ist.
Musterlösung: Prüfen, ob ein Bit gesetzt ist
#include <stdio.h>
int main() {
int n = 10; // 1010
int k = 3;
if (n & (1 << k))
printf("Bit ist gesetzt\n");
else
printf("Bit ist nicht gesetzt\n");
return 0;
}
Aufgabe 8: Binärdarstellung einer int-Zahl
Schreibe eine Funktion
void printBinary(int x);
die die Binärdarstellung einer int-Zahl ausgibt (z. B. für 5: 00000000000000000000000000000101).
Musterlösung: Binärdarstellung einer int-Zahl
#include <stdio.h>
void printBinary(int x) {
for (int i = sizeof(int) * 8 - 1; i >= 0; i--) {
printf("%d", (x >> i) & 1);
}
printf("\n");
}
int main() {
printBinary(5);
printBinary(22);
return 0;
}