# Unterschied: Modulo-Operation und Restwertoperator



## lady-sonja (14. Dez 2008)

Guten Abend zusammen! 
Ich habe eine Frage undzwar hab ich den Übungen meines Skriptes eine Aufgabe stehen indem ich den Unterschied anhand von Beispielen zwischen der Modulo Operation und dem binären %-Operator erklären soll. Ich hab grade 1 Stunde lang gegoogelt und im Forum gesucht aber entweder bin ich blind oder ich versteh die Aufgabe nicht. Ich kann nix darüber finden. Überall sagt man mir dass es sich dabei um ein und die selbe Operation handelt. 

Vielleicht könnt ihr mir weiterhelfen und einen Tip geben  

VIELEN DANK und liebe Grüsse, Sonja


----------



## SlaterB (15. Dez 2008)

von Modulo gibts ja zwei Varianten, siehe
Division mit Rest ? Wikipedia

und Java kann nur eine davon implementieren, vielleicht ist das andere irgendwas, was in deinem Skript definiert ist und damit abweichend,


----------



## lady-sonja (15. Dez 2008)

Vielen Dank für die schnelle Antwort. Das habe ich vorhin auch gesehen aber konnte nicht viel damit anfangen. Naja ich glaub ich muss doch wohl den Professor darauf ansprechen


----------



## Guest (15. Dez 2008)

openbook.galileocomputing.de/javainsel7/javainsel_05_004.htm#mj02576dc398f2aa199ab880a2646a57f9


----------



## Hamster (10. Aug 2010)

Gibts inzwischen ne Antwort auf das Thema? Wir sitzen nämlich gerade vor dem selben Problem... vermutlich gleicher Prof, aber 2 Jahre später


----------



## SlaterB (10. Aug 2010)

auch nach 2 Jahren und auch in 200 Jahren ist das nicht beantwortbar,
niemand auf der Welt weiß, was in speziell dieser Aufgabe 'Modulo Operation' oder stattdessen 'binären %-Operator' bedeutet,
das sind individuell vergebene Begriffe

vielleicht hoffst du auf eine Antwort von der gleichen Uni, das ginge evtl..

---

nochmal ein Zitat aus dem auch schon geposteten Lehrbuch


> Eine Ganzzahldivision muss nicht unbedingt glatt aufgehen, wie im Fall 9/2. In diesem Fall gibt es den Rest 1. Diesen Rest liefert der Restwert-Operator (engl. remainder operator), oft auch Modulo genannt. (Mathematiker unterscheiden die beiden Begriffe Rest und Modulo, da ein Modulo nicht negativ ist, der Rest in Java aber schon. Das soll uns aber egal sein.)


Galileo Computing :: Java ist auch eine Insel (8. Auflage) – 2.5 Ausdrücke, Operanden und Operatoren

ist der zweite google-Link zu 'Restwertoperator',
dieses Thema hier Platz 1


----------



## XHelp (10. Aug 2010)

Der erste Unterschied, der ist Auge springt ist:
-5 mod 7 = 2
-5 % 7 = -5


----------



## Haave (10. Aug 2010)

Geht's hier nicht vielleicht doch eher um den binären *&*-Operator? (Vielleicht versehentlich die falsche Taste erwischt?) Damit ließe sich in diesem Zusammenhang zumindest etwas anfangen.


----------



## XHelp (10. Aug 2010)

In wie fern kannst du mit einem &-Operator im Zusammenhang mit modulo etwas anfangen?


----------



## Hamster (10. Aug 2010)

Nee, geht schon um das % - Ding. Nen binären &-Operator kennen wir (noch?) gar nicht xD



Hier mal der genaue Wortlaut der Aufgabe, vielleicht hilft das::bahnhof:



> Übung 3.4: Informieren Sie sich in der Literatur über die Modulo-Operation und
> geben Sie Code-Beispiele an, die zeigen, dass der binäre %-Operator nicht den
> Modulowert berechnet, sondern den Restwert nach Division.
> (Hinweis: denken Sie bei dieser Aufgabe auch an negative Zahlen.)






Das Beispiel von XHelp passt natürlich, allerdings können wir das nicht so ganz nachvollziehen oO Auch nach dem Zitat aus dem Buch nicht... heißt das, ein Modulo Wert ist NIE negativ und der Restwert IMMER? Oder bin ich wieder völlig verwirrt?  (Alles nur auf Java bezogen, nicht auf Mathe xD)


----------



## Ark (10. Aug 2010)

Und was ist an der Uralt-Antwort von SlaterB nicht zu verstehen? Da steht ja in der Aufgabe sogar der Hinweis mit den negativen Zahlen. ???:L Deutlicher als XHelp kann man es ja schon gar nicht mehr wirklich sagen.

Ark


----------



## XHelp (10. Aug 2010)

Ich glaube es ist alles VOR ALLEM auf Mathe bezogen ist.
Denk über deine Aussage mal in Ruhe nach: "Restdivision ist immer negativ", nach 5 Sekunden sollten dir da genügen Gegenargumente einfallen.


----------



## Haave (10. Aug 2010)

@XHelp:
Ich dachte an Modulo bei Zweierpotenzen, wo man für die Abfrage "Ist der Rest 0?" statt "x % (2 hoch n)" auch "x & ((2 hoch n)-1) schreiben kann, z.B.:

```
int a = 16;
boolean b = (a&3)==0; //Ueberpruefung, ob a glatt durch 4 teilbar ist
System.out.println(b); //b == true
```

Aber die Frage war offenbar auf einer anderen Ebene gemeint, also nehme ich alles zurück und behaupte das Gegenteil


----------



## XHelp (10. Aug 2010)

Aso, ja, aber das ist ja nur ein Spezialfall.


----------

