Forum: FPGA, VHDL & Co. VHDL - Unterschied REM & MOD ?


You were forwarded to this site from EmbDev.net. Back to EmbDev.net
von Stefan Z. (derdespot)


Lesenswert?

Hallo Leute,
eine Frage zu Operatoren. Worin besteht der Unterschied ziwschen dem mod 
und dem rem Operator? Ich habe folgendes gelesen:

Der Remainder-Operator (a REM b) berechnet den Rest bei einer 
Integerdivision, so daß gilt: a = (a/b)*b + (a REM b)
(a REM b) hat das Vorzeichen von a und einen absoluten Wert, der
kleiner als der absolute Wert von b ist.

Der Modulo-Operator (a MOD b) berechnet den Rest bei einer 
Integerdivision,
so daß gilt: a = int_value*b + (a MOD b)
(a MOD b) hat das Vorzeichen von b und einen absoluten Wert, der
kleiner als der absolute Wert von b ist.

Also die Gleichung vom Moulo Operator ergibt sinn. Aber was bringt mir 
die Gleichung vom rem-Operator?

z.B.:

a = 43
b = 3
(a rem b)
(43 rem 3)

a = (a/b)*b + (a REM b)
(a REM b) = a - ((a(b)*b) = 0
Rest = 43 - ((43/3)*3) = 0
Der Rest ist in jedem Fall 0!

Könnt ihr mit Helfen?

Grüße Stefan

von mac4ever (Gast)


Lesenswert?

Hi, ich habe gerade in einem anderen Forum etwas dazu gefunden:

5 mod 3 = 2
(-5) mod 3 = 1
5 mod (-3) = -1
(-5) mod (-3) = -2

5 rem 3 = 2
(-5) rem 3 = -2
5 rem (-3) = 2
(-5) rem (-3) = -2

Wie Du siehst, besteht der Unterschied bei der Behandlung von negativen 
Argumenten.

von Johannes T. (johnsn)


Lesenswert?

Kurz gesagt von dem was du gelesen hast:

a mod b : positiver Rest
a rem b : Rest hat Vorzeichen von a

Grüße

von Morin (Gast)


Lesenswert?

Lies nochmal :)

a mod b : Rest hat Vorzeichen von b
a rem b : Rest hat Vorzeichen von a

von Johannes T. (johnsn)


Lesenswert?

Morin wrote:
> a mod b : Rest hat Vorzeichen von b
Ja, da hatter Recht!

von Gast (Gast)


Lesenswert?

oder wie wir in der 9. Klasse gelernt haben:
REM (a/b) = a MOD b * SGN (a/b)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.