Heim > Backend-Entwicklung > C++ > Hauptteil

Implementierung eines vorzeichenlosen Integer-Recovery-Divisionsalgorithmus in C++

PHPz
Freigeben: 2023-09-12 16:01:01
nach vorne
1708 Leute haben es durchsucht

Besprechen Sie die Division vorzeichenloser Ganzzahlen mithilfe des Divisionsalgorithmus. Einige Divisionsalgorithmen werden auf Papier implementiert, andere auf digitalen Schaltkreisen. Es gibt zwei Divisionsalgorithmen: den langsamen Divisionsalgorithmus und den schnellen Divisionsalgorithmus. Zu den langsamen Divisionsalgorithmen gehören Wiederherstellungsalgorithmen, Nicht-Ausführungs-Wiederherstellungsalgorithmen, SRT und Nicht-Wiederherstellungsalgorithmen.

In diesem Tutorial besprechen wir den Wiederherstellungsalgorithmus unter der Annahme 0 Lösungsmethode

Hier verwenden wir Register Q zum Speichern des Quotienten, Register A zum Speichern des Rests und M zum Speichern des Divisors. Der Anfangswert von A bleibt bei 0 und sein Wert wird wiederhergestellt, weshalb die Methode die Division fortsetzt.

  • Register mit Wert initialisieren,

    • Register mit Wert initialisieren, p>

      • Q = Dividende,

      • A = 0,

      • M = Divisor,
      • N = Dividendenziffer Nummer.

    • Das Verschieben von AQ nach links bedeutet, dass die Register A und Q als Einheit behandelt werden.

    • A wird von M subtrahiert und in A gespeichert.

    • Überprüfen Sie das höchstwertige Bit von A:

      • Wenn es 0 ist, setzen Sie das niedrigstwertige Bit auf 1.

      • Andernfalls setzen Sie das niederwertigste Bit auf 0.

    • Stellen Sie den Wert von A wieder her und dekrementieren Sie den Wert von Zähler N.

    • Wenn N = 0, unterbrechen Sie die Schleife, andernfalls fahren Sie mit Schritt 2 fort.

    • Der Quotient wird im Register Q gespeichert.

    Flussdiagramm

    Implementierung eines vorzeichenlosen Integer-Recovery-Divisionsalgorithmus in C++

    Beispiel

    C++-Code für die obige Methode

    #include <iostream>
    using namespace std;
    int main(){
       // initializing all the variables with Dividend = 9, Divisor = 2.
       int Q = 8,q=1,M=3;
       short N = 4;
       int A = Q;
       M <<= N;
       // loop for division by bit operation.
       for(int i=N-1; i>=0; i--) {
          A = (A << 1)- M;
          // checking MSB of A.
          if(A < 0) {
             q &= ~(1 << i);  // set i-th bit to 0
             A = A + M;
          } else {
             q |= 1 << i;     // set i-th bit to 1
          }
       }
       cout << "Quotient: "<< q;
       return 0;
    }
    Nach dem Login kopieren

    Ausgabe

    Quotient: 2
    Nach dem Login kopieren

    Schlussfolgerung

    In diesem Tutorial haben wir den Wiederherstellungsdivisionsalgorithmus für vorzeichenlose Ganzzahlen besprochen . Wir haben eine einfache Möglichkeit besprochen, dieses Problem mithilfe von Flussdiagrammen und der Anwendung von Bitoperationen zu lösen. Wir haben auch C++-Programme zur Lösung dieses Problems besprochen, die wir mithilfe von Programmiersprachen wie C, Java, Python usw. implementieren können. Wir hoffen, dass Sie dieses Tutorial hilfreich fanden.

Das obige ist der detaillierte Inhalt vonImplementierung eines vorzeichenlosen Integer-Recovery-Divisionsalgorithmus in C++. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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