- Dividend (a)
- 17
- Divisor (n)
- 5
2,000000
Mit diesen Werten öffnen2,000000
Ergebnis: 2,000000Das Ergebnis ist a mod n, der Rest der Division von a durch n: a − n × floor(a ÷ n). Das ist die abgerundete Konvention, der Rest trägt also das Vorzeichen des Divisors — −17 mod 5 ergibt hier 3, während JavaScript und C −2 ausgeben. Genau dieser Unterschied ist der Grund, warum man das nachschlägt.
2,000000
Mit diesen Werten öffnen3,000000
Mit diesen Werten öffnen1,500000
Mit diesen Werten öffnena mod n = a − n × floor(a ÷ n)
| a, n | Quotient floor(a ÷ n) | a mod n |
|---|---|---|
| 0, 5 | 0 | 0 |
| 9,5, 2 | 4 | 1,5 |
| 17, 5 | 3 | 2 |
| 100, 7 | 14 | 2 |
| -8, 3 | -3 | 1 |
| -17, 5 | -4 | 3 |
| 17, -5 | -4 | -3 |
Teile den Dividenden durch den Divisor, runde den Quotienten ab und ziehe das Produkt aus Divisor und Quotient vom Dividenden ab: a mod n = a − n × floor(a ÷ n). Beispiel: 17 mod 5 = 17 − 5 × 3 = 2.
Sie liefert den Rest, der nach der Division einer Zahl durch eine andere übrig bleibt — also das, was bleibt, wenn so viele ganze Vielfache von n wie möglich aus a herausgenommen sind. In der Programmierung dient sie zum Umbrechen von Werten, zum Durchlaufen von Listen und zum Prüfen der Teilbarkeit.
Dieser Rechner nutzt die abgerundete Definition, der Rest trägt also immer das Vorzeichen des Divisors: −17 mod 5 = 3, denn floor(−17 ÷ 5) = −4 und −17 − 5 × (−4) = 3. Die meisten Programmiersprachen rechnen abgeschnitten und gäben −2 aus. Prüfe deshalb stets, welcher Konvention deine Sprache folgt.
Bei positiven Zahlen sind beide identisch. Erst bei negativen trennen sie sich: das abgerundete Modulo folgt dem Vorzeichen des Divisors, der abgeschnittene Rest dem des Dividenden.
Modulo durch null hat keine allgemeine Bedeutung, deshalb folgt dieser Rechner Knuth und gibt den Dividenden unverändert zurück: x mod 0 = x. Der alte Rechner zeigte in diesem Fall gar kein Ergebnis. Jeder andere Divisor funktioniert — positiv oder negativ, ganz oder dezimal.
Information, keine Fachberatung.
This page is also available in English.
Switch to English