Wie würde ich zwei Binärzahlen in C ++ hinzufügen? Was ist die richtige Logik?
Hier ist meine Anstrengung, aber es scheint nicht richtig zu sein:
%Vor%Nun, es ist ein ziemlich triviales Problem.
Wie füge ich zwei Binärzahlen in C ++ hinzu? Was ist die Logik davon?
Zum Hinzufügen von zwei Binärzahlen a und b. Dazu können Sie die folgenden Gleichungen verwenden.
Summe = a xor b
carry = ab
Dies ist die Gleichung für einen Halben Addierer .
Um dies zu implementieren, müssen Sie möglicherweise verstehen, wie ein Volladdierer funktioniert.
Summe = a xor b xor c
carry = ab + bc + ca
Da Sie Ihre Binärzahlen im int-Array speichern, sollten Sie den bitweisen Betrieb verstehen. Sie können ^ für XOR, | verwenden Operator für OR, & amp; Operator für UND.
Hier ist ein Beispielcode, um die Summe zu berechnen.
%Vor%Sie können die Operation "Bitwise OR" verwenden, um den Code seit
zu reduzieren %Vor%Sie können auch beide Zahlen in dezimale Summe umwandeln und sie gehen wieder zurück in die Binärdatei.
Konvertieren von Dezimal zu Binär
%Vor%Ihre Arrays sind ein Element, das zu klein für Ihre Indizierung ist.
int a[3]
hat nur 3 Elemente, also ist a[3] = 1
ungültig (es hat undefiniertes Verhalten ), da es auf das vierte Element zugreift, das nicht existiert.
Ebenso für die anderen Arrays.
Das bedeutet, dass das gesamte Programm undefiniertes Verhalten hat, d. h. es kann alles oder nichts tun.
(Was in Ihrem Fall wahrscheinlich passiert, ist, dass das Schreiben außerhalb der Arrays die anderen Variablen überschreibt.)
Sie initialisieren auch nicht das result
-Array, also sind es nur zufällige Daten
Da Sie nur 4 seiner Elemente aktualisieren, aber alle (und mehr) drucken, werden auch zufällige Daten ausgegeben.
Im Folgenden finden Sie die Fehler in Ihrem Code und der festgelegte Code ist ebenfalls unter "
Hier ist das funktionierende Stück Code:
%Vor%