This commit is contained in:
Bora Zuenbuelkoek 2025-04-11 07:48:39 +02:00
parent 555fabfbbd
commit 18d90499ac
4 changed files with 27 additions and 21 deletions

2
.idea/Info2P5.iml generated
View File

@ -1,2 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<module classpath="CIDR" type="CPP_MODULE" version="4" />

View File

@ -1,7 +1,7 @@
#include <stdio.h>
int umrechnen(int number);
int umrechnen2(int number);
void umrechnen2(int number, int bits);
int main() {
int number = 0;
@ -11,36 +11,44 @@ int main() {
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');
while (getchar() != '\n'); // Eingabepuffer leeren
} else {
validInput = 1;
}
}
if (number >= 0) {
int erg = umrechnen(number);
printf(" %d\n", erg);
return 0;
int erg = umrechnen(number); // Positive Zahl in Binär umrechnen
printf("Binaerdarstellung: %d\n", erg);
} else {
int erg = umrechnen2(number);
printf(" %d\n", erg);
return 0;
int bits = sizeof(int) * 8 - 1; // Anzahl der Bits (z. B. 31 für 32-Bit-Systeme)
printf("Binaerdarstellung: ");
umrechnen2(number, bits); // Negative Zahl im Zweierkomplement ausgeben
printf("\n");
}
return 0;
}
int umrechnen(int number) {
if (number == 0) {
return 0;
} {
return number % 2 + 10 * umrechnen(number / 2);
}
}
int umrechnen2(int number) {
unsigned int value = number; // Interpretiere die Zahl als unsigned
int bits = sizeof(int) * 8; // Anzahl der Bits in einem int (z. B. 32 Bits)
for (int i = bits - 1; i >= 0; i--) {
printf("%d", (value >> i) & 1); // Gib das i-te Bit aus
return 0; // Basisfall: Binärdarstellung von 0 ist 0
} else {
return number % 2 + 10 * umrechnen(number / 2); // Rekursive Umrechnung
}
}
void umrechnen2(int number, int bits) {
if (bits < 0) {
return; // Basisfall: Keine weiteren Bits zu prüfen
}
unsigned int mask = 1 << bits; // Maske für das aktuelle Bit
if (number & mask) {
printf("1");
} else {
printf("0");
}
umrechnen2(number, bits - 1); // Rekursiver Aufruf für das nächste Bit
}

Binary file not shown.

BIN
modus.exe

Binary file not shown.