Heim > Artikel > Backend-Entwicklung > Wie berechnet man die Obergrenze der Ganzzahldivision in C/C ohne Multiplikation oder Gleitkommaoperationen?
Obergrenze der Ganzzahldivision ohne Multiplikation oder Gleitkommaumwandlung
In C und C gibt die Ganzzahldivision (x/y) die Untergrenze zurück des Ergebnisses. Um stattdessen die Obergrenze zu berechnen und Gleitkomma-Umwandlung und zusätzliche Multiplikation zu vermeiden, sollten Sie die folgenden Methoden in Betracht ziehen:
1. Verwendung von (x y - 1) / y:
unsigned int x, y, q; // Round up q = (x + y - 1) / y;
Diese Formel stellt sicher, dass die Obergrenze berechnet wird, da vor der Division 1 addiert wird.
2. Überlauf in (x y) vermeiden:
Um einen ganzzahligen Überlauf beim Addieren von x und y zu verhindern, ist eine alternative Methode:
q = 1 + ((x - 1) / y); // if x != 0
Diese Formulierung erhöht die Obergrenze effektiv um 1, außer wenn x 0 ist, bleibt es 0.
Das obige ist der detaillierte Inhalt vonWie berechnet man die Obergrenze der Ganzzahldivision in C/C ohne Multiplikation oder Gleitkommaoperationen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!