Heim  >  Artikel  >  Backend-Entwicklung  >  Implementierung eines vorzeichenlosen Integer-Recovery-Divisionsalgorithmus in C++

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

PHPz
PHPznach vorne
2023-09-12 16:01:011625Durchsuche

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;
    }

    Ausgabe

    Quotient: 2

    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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen