Was ist Ganzzahldivision?

Division ganzer Zahlen, die einen ganzzahligen Quotienten liefert. Wie der Nachkommaanteil behandelt wird, unterscheidet sich zwischen den Sprachen: Manche schneiden in Richtung null ab (C, Java), andere runden in Richtung minus unendlich ab (// in Python). Bei positiven Zahlen sind die Ergebnisse gleich, bei negativen unterscheiden sie sich.

Japanische Bezeichnung: 整数除算

„Ganzzahldivision“ kommt in 1 Übungsfragen aus 1 Themen vor, z. B. Grundlagen der Programmierung (Pseudocode nachverfolgen).

Fachgebiet: Grundlagen der Programmierung (Pseudocode nachverfolgen)

Unterschiede bei negativen Zahlen

Die Division von −7 durch 2 ergibt in C und Java, die in Richtung null abschneiden, den Quotienten −3 und den Rest −1. Das abrundende // in Python ergibt den Quotienten −4, und % ergibt den Rest 1. In beiden Fällen gilt „Quotient × Divisor + Rest = Dividend“; der Rest hat in C das Vorzeichen des Dividenden und in Python das des Divisors. Das führt zu Fehlern, wenn Programme, die negative Zahlen verarbeiten, in eine andere Sprache übertragen werden.

Im Pseudocode

Pseudocode-Aufgaben erklären in der Aufgabe, wie der Nachkommaanteil von ÷ behandelt wird. Steht dort zum Beispiel „bei der Zuweisung an eine ganzzahlige Variable wird der Nachkommaanteil abgeschnitten“, entfällt bei der Zuweisung von (lo + hi) ÷ 2 an die ganzzahlige Variable mid die 0,5, wenn lo + hi ungerade ist. Dieses Abschneiden beeinflusst Ergebnisse wie die mittlere Position bei einer binären Suche.

Zusammenhang mit Verschiebungen

Eine Ganzzahldivision durch eine Zweierpotenz lässt sich auch mit einer Rechtsverschiebung im Binärsystem berechnen. Bei vorzeichenlosen ganzen Zahlen ist x geteilt durch 2 gleich x um 1 Bit nach rechts verschoben. Eine arithmetische Rechtsverschiebung einer negativen Zahl rundet jedoch ab, daher kann das Ergebnis vom Abschneiden in Richtung null abweichen.

Häufige Fragen

Was passiert bei einer Division durch null?

Eine ganzzahlige Division durch null ist in vielen Sprachen ein Laufzeitfehler (eine Ausnahme) und in C undefiniertes Verhalten. Programme sollten vor dem Dividieren prüfen, dass der Divisor nicht null ist.

Wie hängen Quotient und Rest der Ganzzahldivision zusammen?

Mit dem Quotienten q und dem Rest r gilt Dividend = q × Divisor + r. Quotient und Rest sind als Paar definiert; ändert sich die Rundung des Quotienten (Abschneiden oder Abrunden), ändert sich auch der Rest.

„Ganzzahldivision“ in den Erläuterungen

Fragen mit „Ganzzahldivision“ (1)

  1. ÷ ist die Division; wird das Ergebnis einer ganzzahligen Variablen (auch einem Funktionsargument) zugewiesen, wird der Nachkommaanteil abgeschnitten. Was gibt die folgende Funktion f beim Aufruf f(9087) zurück?

Verwandte Begriffe

Argument Array Bitoperation Kontrollstruktur Kurzschlussauswertung (Short-Circuit Evaluation) Modulo-Operation Objektorientierte Programmierung Off-by-one-Fehler Pseudocode Rückgabewert

Zur Glossarübersicht