From fa1fd42f64dcace7738cd9e6ede2cdbcefa2926a Mon Sep 17 00:00:00 2001 From: Bora Date: Thu, 8 May 2025 19:00:57 +0200 Subject: [PATCH] halo --- a.exe | Bin 262608 -> 262433 bytes adturing.c | 56 +++++++++++++++++++++++++++++++++-------------------- 2 files changed, 35 insertions(+), 21 deletions(-) diff --git a/a.exe b/a.exe index 19391a61ee58daecd3e441b19c189842570476db..b369f665f7605e429055c3a3f78b197c3c5c39fc 100644 GIT binary patch delta 19007 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 diff --git a/adturing.c b/adturing.c index 3501414..271bcda 100644 --- a/adturing.c +++ b/adturing.c @@ -1,36 +1,50 @@ #include // Addiert 1 zu einer Dualzahl (als String) und speichert das Ergebnis in output +// input: Dualzahl als String, z.B. "1011" +// output: Ergebnis als String, z.B. "1100" +// maxlen: Maximale Länge des output-Arrays (inklusive '\0') void dual_addiere_eins(const char *input, char *output, int maxlen) { - int len = strlen(input); // Länge der Eingabe bestimmen - int carry = 1; // Übertrag (wir addieren 1, daher am Anfang 1) - int i, j; // Schleifenvariablen + int len = strlen(input); // Länge der Eingabe bestimmen + int carry = 1; // Übertrag: Wir addieren 1, daher am Anfang 1 + int i, pos = 0; // i: läuft durch input, pos: Position im temp-Array - char temp[maxlen]; // Temporäres Array für das Ergebnis (rückwärts) - temp[maxlen-1] = '\0'; // String-Ende setzen + char temp[maxlen]; // Temporäres Array für das Ergebnis (rückwärts) + // maxlen reicht, da Ergebnis maximal 1 Stelle länger als input sein kann // Von hinten (letztes Zeichen) nach vorne durchgehen - for (i = len - 1, j = maxlen - 2; i >= 0 && j >= 0; --i, --j) { + for (i = len - 1; i >= 0; --i) { if (input[i] == '1') { // Wenn aktuelle Ziffer 1 ist - temp[j] = carry ? '0' : '1'; // Mit Übertrag: 1+1=0 (Übertrag bleibt), sonst 1 - // carry bleibt 1, wenn carry==1 und input[i]=='1' + if (carry) { + temp[pos++] = '0'; // 1 + 1 = 0, Übertrag bleibt 1 + } else { + temp[pos++] = '1'; // 1 + 0 = 1, kein Übertrag mehr + } + // carry bleibt 1, wenn wir 1+1 gerechnet haben } else if (input[i] == '0') { // Wenn aktuelle Ziffer 0 ist - temp[j] = carry ? '1' : '0'; // Mit Übertrag: 0+1=1 (Übertrag wird 0), sonst 0 - carry = 0; // Übertrag ist jetzt weg + if (carry) { + temp[pos++] = '1'; // 0 + 1 = 1, Übertrag wird 0 + carry = 0; + } else { + temp[pos++] = '0'; // 0 + 0 = 0, kein Übertrag + } } else { - output[0] = '\0'; // Fehlerfall: ungültiges Zeichen + output[0] = '\0'; // Fehlerfall: ungültiges Zeichen in input return; } } - // Falls nach der Schleife noch ein Übertrag übrig ist (z.B. 111 + 1 = 1000) - if (carry && j >= 0) { - temp[j--] = '1'; // Setze noch eine 1 ganz vorne - } - // Rest mit Nullen auffüllen (falls nötig) - while (j >= 0) temp[j--] = '0'; - // Führende Nullen entfernen (außer die letzte Ziffer) - int start = 0; - while (temp[start] == '0' && temp[start+1] != '\0') ++start; - strcpy(output, temp + start); // Ergebnis in output kopieren + // Falls nach der Schleife noch ein Übertrag übrig ist (z.B. 111 + 1 = 1000) + if (carry) { + temp[pos++] = '1'; // Setze noch eine 1 ganz vorne + } + + temp[pos] = '\0'; // String-Ende setzen + + // Jetzt temp umdrehen und in output kopieren + // temp enthält das Ergebnis rückwärts, also müssen wir es umdrehen + for (i = 0; i < pos; ++i) { + output[i] = temp[pos - 1 - i]; + } + output[pos] = '\0'; // String-Ende setzen } \ No newline at end of file