From c98aeddecc15b6d4c89706eebcd2132792b8872e Mon Sep 17 00:00:00 2001 From: Bora Date: Thu, 10 Apr 2025 19:30:19 +0200 Subject: [PATCH] halo --- dualwand.c | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 dualwand.c diff --git a/dualwand.c b/dualwand.c new file mode 100644 index 0000000..dcbca2d --- /dev/null +++ b/dualwand.c @@ -0,0 +1,40 @@ +#include + +void umrechnen(int number); + +int main() { + int number = 0; + int validInput = 0; + + while (!validInput) { + printf("Bitte geben Sie eine Zahl ein: "); + if (scanf("%d", &number) != 1) { + printf("Ungueltige Eingabe. Bitte geben Sie eine gueltige Zahl ein.\n"); + while (getchar() != '\n'); + } else { + validInput = 1; + } + } + + umrechnen(number); + + return 0; +} + +void umrechnen(int number) { + int bits = sizeof(int) * 8; // Anzahl der Bits in einem int (z. B. 32 Bits) + unsigned int mask = 1 << (bits - 1); // Maske für das höchstwertige Bit + + // Wenn die Zahl negativ ist, wird sie als Zweierkomplement interpretiert + unsigned int value = (unsigned int)number; + + for (int i = 0; i < bits; i++) { + // Prüfe das höchstwertige Bit und schiebe die Maske nach rechts + if (value & mask) { + printf("1"); + } else { + printf("0"); + } + mask >>= 1; // Schiebe die Maske um ein Bit nach rechts + } +} \ No newline at end of file