Java Modulo %, was wird in die variable gespeichert?

4 Antworten

Bei der modulo Rechnung wird der Rest übernommen.
Also bei 2345%10 wird 5 gespeichert.


TUrabbIT  14.12.2016, 18:24

Der Rest ist immer das was bei der ganzzahligen Division wegfallen würde. Also bei 4/2 bleibt 0, bei 5/2 bleibt 1, denn das Ergebnis ist 2

1

Wenn du so ein Programm hast:

for a=0 to 10

print a mod 3
next
kommt 0 1 2 0 1 2 0 1 2 0 als Ergebnis raus.
Und deine Vermutung ist richtig: 2554 mod 10=4
2554/10=255
255 mod 10=5
...

int zahl = 2554;

while(zahl > 9){
   System.Out.println(zahl % 10); //gibt die letzte Stelle aus   
   zahl /= 10; //schneidet die letzte Stelle ab
}

Der Modulo-Operator % berechnet den Divisionsrest.

Es ist wie in der Grundschule, ohne Komma oder sonst was:

17 : 4 = 4 Rest 1

Bei 17%4 wird also 1 zurückgeliefert, das ist der Rest der ganzzahligen Division von 17 durch 4.

Wenn du Ziffern einer Zahl bestimmen möchtest, nimmst du modulo 10, das liefert dir nämlich (zumindest im Dezimalsystem) die Einerstelle:

31845 % 10 = 5
3184 % 10 = 4
318 % 10 = 8
...

Das kannst du weiter fortführen und die Zahl somit in ihre Ziffern zerlegen.

LG Willibergi

Woher ich das weiß:Berufserfahrung – Software-Entwicklung

Kaleva  20.12.2016, 20:19

Hach da lobe ich mir die Programmiersprache Forth. Da kann man in jedem beliebigen Zahlensystem rechnen, und mit Modulo zusammen wird das eine tolle Waffe bei verschiedenen Angelegenheiten. Z.B. Umrechnung von Sekunden in Stunden, Minuten und Sekunden wird ein extrem kompakter Einzeiler. Versucht das mal so kompakt in Java. No chance.

:-D


0