Heim > Backend-Entwicklung > C++ > Hauptteil

Bitweise rekursive Addition zweier Ganzzahlen in C

WBOY
Freigeben: 2023-09-05 21:17:03
nach vorne
1247 Leute haben es durchsucht

Bitweise rekursive Addition zweier Ganzzahlen in C

In dieser Frage werden uns zwei Zahlen gegeben. Unsere Aufgabe besteht darin, ein C-Programm zur bitweisen rekursiven Addition zweier Ganzzahlen zu erstellen.

Die Logik des Summierens mithilfe bitweiser Operationen ähnelt der, die wir im Vorschulalter gemacht haben. Zum Summieren addieren wir normalerweise jede Ziffer der Zahl, und wenn ein Übertrag vorhanden ist, addieren wir ihn zur nächsten Zahl.

Wir werden etwas Ähnliches tun, indem wir den XOR-Operator zum Summieren und den AND-Operator zur Übertragsprüfung verwenden. Wenn es einen Übertrag gibt, addieren wir ihn wieder zur Zahl, andernfalls nicht.

Das ist die Logik des Halbaddierers, die Sie wahrscheinlich in der digitalen Elektronik gelernt haben. Siehe hier...

Jetzt wird die Summe mithilfe von a^b berechnet, d. h. XOR b. Wenn das erste Bit von beiden gesetzt ist, müssen wir prüfen, ob ein zusätzlicher Übertrag weitergegeben werden muss. Wir müssen der Zahl ein zusätzliches Einstellungsbit hinzufügen.

Die bitweise Arithmetik lautet also:

Schritt 1 – Finden Sie das XOR von a und b, d. h. a^b, und speichern Sie es in der Ergebnisvariablen.

Schritt 2 – Überprüfen Sie, ob {(a & b)

Schritt 2.1 – Wenn gleich 0, drucken Sie das Ergebnis aus, das das Endergebnis ist.

Schritt 2.2 – Wenn ungleich 0 gleich 0 ist, fahren Sie mit Schritt 1 fort, wobei a = {(a & b)

Beispiel

Prozeduraler Algorithmus, der die Funktionsweise dieser Funktion veranschaulicht –

Live-Demonstration

#include <stdio.h>
int addNumbers(int a, int b) {
   int carry = (a & b) << 1;
   int result = a^b;
   if (carry == 0)
      return result;
   else
      addNumbers(carry, result);
}
int main(){
   int a = 54, b = 897;
   printf("The sum of %d and %d using bitwise adding is %d", a, b, addNumbers(a, b));
   return 0;
}
Nach dem Login kopieren

Ausgabe

The sum of 54 and 897 using bitwise adding is 951&rsquo;
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonBitweise rekursive Addition zweier Ganzzahlen in C. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage